Prometheus Volatility StopThe Prometheus Volatility Stop is an indicator designed to give you a moving risk metric along with a custom Moving Average cross. After a calculation of the annualized volatility for the specified lookback period we determine bullish or bearish from the moving averages and plot the Volatility Stop accordingly.
User Input:
A user can select from Hull Moving Average, Exponential Moving average, Simple Moving Average, the Moving Average used in RSI, and Weighted Moving Average. The default is Hull Moving Average and Exponential Moving average.
A user can also specify the lookback period. The default is 30.
A user may also turn off the plots for the Moving Averages.
The reason for this approach is to be more original from the traditional Volatility Stop.
Calculation:
The Historical Volatility is calculated by taking the standard deviation of the log returns for the specified period and then annualizing it.
hv = ta.stdev(math.log(close / close ), lkb) * math.sqrt(252/5)
Then the Volatility Stop is calculated as follows:
recent_max = ta.highest(close, lkb)
recent_min = ta.lowest(close, lkb)
hv_stop = ma_2 > ma_1 ? recent_max + hv : recent_min - hv
When the second selected moving average is greater than the first, which signals bearishness, the historical volatility gets added to the high of that period. When the moving averages signal bullish the historical volatility gets subtracted from the low of that period.
Here is an example on NASDAQ:ARM :
After the first crossover, bullish signal, price runs for some time. As we get higher and higher so does the Volatility Stop. At the highs before a bearish crossover the price hits and closes at the Volatility Stop. Providing what could be an exit from a strong run up.
Intra-day example on NASDAQ:QQQ :
We see that in the early bearish move price goes on to hit the Volatility Stop before the trend switches.
We also see that in the failed long. The price action throughout the rest of the day, while not providing in profit stop outs, do provide fine directional alerts.
All those examples have been done with the default settings. Upon changing Moving Average One to a WMA and Moving Average Two to an SMA, as well as the lookback to 75. We see this quickly can become a simple trend follower.
This is the perspective we aim to provide. We encourage traders to not follow indicators blindly. No indicator is 100% accurate. This one can give you a different perspective of price strength with volatility. We encourage any comments about desired updates or criticism!
Cerca negli script per "Exponential Moving Average"
Bayesian Trend Indicator [ChartPrime]Bayesian Trend Indicator
Overview:
In probability theory and statistics, Bayes' theorem (alternatively Bayes' law or Bayes' rule), named after Thomas Bayes, describes the probability of an event, based on prior knowledge of conditions that might be related to the event.
The "Bayesian Trend Indicator" is a sophisticated technical analysis tool designed to assess the direction of price trends in financial markets. It combines the principles of Bayesian probability theory with moving average analysis to provide traders with a comprehensive understanding of market sentiment and potential trend reversals.
At its core, the indicator utilizes multiple moving averages, including the Exponential Moving Average (EMA), Simple Moving Average (SMA), Double Exponential Moving Average (DEMA), and Volume Weighted Moving Average (VWMA) . These moving averages are calculated based on user-defined parameters such as length and gap length, allowing traders to customize the indicator to suit their trading strategies and preferences.
The indicator begins by calculating the trend for both fast and slow moving averages using a Smoothed Gradient Signal Function. This function assigns a numerical value to each data point based on its relationship with historical data, indicating the strength and direction of the trend.
// Smoothed Gradient Signal Function
sig(float src, gap)=>
ta.ema(source >= src ? 1 :
source >= src ? 0.9 :
source >= src ? 0.8 :
source >= src ? 0.7 :
source >= src ? 0.6 :
source >= src ? 0.5 :
source >= src ? 0.4 :
source >= src ? 0.3 :
source >= src ? 0.2 :
source >= src ? 0.1 :
0, 4)
Next, the indicator calculates prior probabilities using the trend information from the slow moving averages and likelihood probabilities using the trend information from the fast moving averages . These probabilities represent the likelihood of an uptrend or downtrend based on historical data.
// Define prior probabilities using moving averages
prior_up = (ema_trend + sma_trend + dema_trend + vwma_trend) / 4
prior_down = 1 - prior_up
// Define likelihoods using faster moving averages
likelihood_up = (ema_trend_fast + sma_trend_fast + dema_trend_fast + vwma_trend_fast) / 4
likelihood_down = 1 - likelihood_up
Using Bayes' theorem , the indicator then combines the prior and likelihood probabilities to calculate posterior probabilities, which reflect the updated probability of an uptrend or downtrend given the current market conditions. These posterior probabilities serve as a key signal for traders, informing them about the prevailing market sentiment and potential trend reversals.
// Calculate posterior probabilities using Bayes' theorem
posterior_up = prior_up * likelihood_up
/
(prior_up * likelihood_up + prior_down * likelihood_down)
Key Features:
◆ The trend direction:
To visually represent the trend direction , the indicator colors the bars on the chart based on the posterior probabilities. Bars are colored green to indicate an uptrend when the posterior probability is greater than 0.5 (>50%), while bars are colored red to indicate a downtrend when the posterior probability is less than 0.5 (<50%).
◆ Dashboard on the chart
Additionally, the indicator displays a dashboard on the chart , providing traders with detailed information about the probability of an uptrend , as well as the trends for each type of moving average. This dashboard serves as a valuable reference for traders to monitor trend strength and make informed trading decisions.
◆ Probability labels and signals:
Furthermore, the indicator includes probability labels and signals , which are displayed near the corresponding bars on the chart. These labels indicate the posterior probability of a trend, while small diamonds above or below bars indicate crossover or crossunder events when the posterior probability crosses the 0.5 threshold (50%).
The posterior probability of a trend
Crossover or Crossunder events
◆ User Inputs
Source:
Description: Defines the price source for the indicator's calculations. Users can select between different price values like close, open, high, low, etc.
MA's Length:
Description: Sets the length for the moving averages used in the trend calculations. A larger length will smooth out the moving averages, making the indicator less sensitive to short-term fluctuations.
Gap Length Between Fast and Slow MA's:
Description: Determines the difference in lengths between the slow and fast moving averages. A higher gap length will increase the difference, potentially identifying stronger trend signals.
Gap Signals:
Description: Defines the gap used for the smoothed gradient signal function. This parameter affects the sensitivity of the trend signals by setting the number of bars used in the signal calculations.
In summary, the "Bayesian Trend Indicator" is a powerful tool that leverages Bayesian probability theory and moving average analysis to help traders identify trend direction, assess market sentiment, and make informed trading decisions in various financial markets.
MultiMovesCombines 3 different moving averages together with the linear regression. The moving averages are the HMA, EMA, and SMA. The script makes use of two different lengths to allow the end user to utilize common crossovers in order to determine entry into a trade. The edge of each "cloud" is where each of the moving averages actually are. The bar color is the average of the shorter length combined moving averages.
-The Hull Moving Average (HMA), developed by Alan Hull, is an extremely fast and smooth moving average. In fact, the HMA almost eliminates lag altogether and manages to improve smoothing at the same time. A longer period HMA may be used to identify trend.
-The exponential moving average (EMA) is a technical chart indicator that tracks the price of an investment (like a stock or commodity) over time. The EMA is a type of weighted moving average (WMA) that gives more weighting or importance to recent price data.
-A simple moving average (SMA) is an arithmetic moving average calculated by adding recent prices and then dividing that figure by the number of time periods in the calculation average.
-The Linear Regression Indicator plots the ending value of a Linear Regression Line for a specified number of bars; showing, statistically, where the price is expected to be. Instead of plotting an average of past price action, it is plotting where a Linear Regression Line would expect the price to be, making the Linear Regression Indicator more responsive than a moving average.
The lighter colors = default 50 MA
The darker colors = default 200 MA
MomentumIndicatorsLibrary "MomentumIndicators"
This is a library of 'Momentum Indicators', also denominated as oscillators.
The purpose of this library is to organize momentum indicators in just one place, making it easy to access.
In addition, it aims to allow customized versions, not being restricted to just the price value.
An example of this use case is the popular Stochastic RSI.
# Indicators:
1. Relative Strength Index (RSI):
Measures the relative strength of recent price gains to recent price losses of an asset.
2. Rate of Change (ROC):
Measures the percentage change in price of an asset over a specified time period.
3. Stochastic Oscillator (Stoch):
Compares the current price of an asset to its price range over a specified time period.
4. True Strength Index (TSI):
Measures the price change, calculating the ratio of the price change (positive or negative) in relation to the
absolute price change.
The values of both are smoothed twice to reduce noise, and the final result is normalized
in a range between 100 and -100.
5. Stochastic Momentum Index (SMI):
Combination of the True Strength Index with a signal line to help identify turning points in the market.
6. Williams Percent Range (Williams %R):
Compares the current price of an asset to its highest high and lowest low over a specified time period.
7. Commodity Channel Index (CCI):
Measures the relationship between an asset's current price and its moving average.
8. Ultimate Oscillator (UO):
Combines three different time periods to help identify possible reversal points.
9. Moving Average Convergence/Divergence (MACD):
Shows the difference between short-term and long-term exponential moving averages.
10. Fisher Transform (FT):
Normalize prices into a Gaussian normal distribution.
11. Inverse Fisher Transform (IFT):
Transform the values of the Fisher Transform into a smaller and more easily interpretable scale is through the
application of an inverse transformation to the hyperbolic tangent function.
This transformation takes the values of the FT, which range from -infinity to +infinity, to a scale limited
between -1 and +1, allowing them to be more easily visualized and compared.
12. Premier Stochastic Oscillator (PSO):
Normalizes the standard stochastic oscillator by applying a five-period double exponential smoothing average of
the %K value, resulting in a symmetric scale of 1 to -1
# Indicators of indicators:
## Stochastic:
1. Stochastic of RSI (Relative Strengh Index)
2. Stochastic of ROC (Rate of Change)
3. Stochastic of UO (Ultimate Oscillator)
4. Stochastic of TSI (True Strengh Index)
5. Stochastic of Williams R%
6. Stochastic of CCI (Commodity Channel Index).
7. Stochastic of MACD (Moving Average Convergence/Divergence)
8. Stochastic of FT (Fisher Transform)
9. Stochastic of Volume
10. Stochastic of MFI (Money Flow Index)
11. Stochastic of On OBV (Balance Volume)
12. Stochastic of PVI (Positive Volume Index)
13. Stochastic of NVI (Negative Volume Index)
14. Stochastic of PVT (Price-Volume Trend)
15. Stochastic of VO (Volume Oscillator)
16. Stochastic of VROC (Volume Rate of Change)
## Inverse Fisher Transform:
1.Inverse Fisher Transform on RSI (Relative Strengh Index)
2.Inverse Fisher Transform on ROC (Rate of Change)
3.Inverse Fisher Transform on UO (Ultimate Oscillator)
4.Inverse Fisher Transform on Stochastic
5.Inverse Fisher Transform on TSI (True Strength Index)
6.Inverse Fisher Transform on CCI (Commodity Channel Index)
7.Inverse Fisher Transform on Fisher Transform (FT)
8.Inverse Fisher Transform on MACD (Moving Average Convergence/Divergence)
9.Inverse Fisher Transfor on Williams R% (Williams Percent Range)
10.Inverse Fisher Transfor on CMF (Chaikin Money Flow)
11.Inverse Fisher Transform on VO (Volume Oscillator)
12.Inverse Fisher Transform on VROC (Volume Rate of Change)
## Stochastic Momentum Index:
1.Stochastic Momentum Index of RSI (Relative Strength Index)
2.Stochastic Momentum Index of ROC (Rate of Change)
3.Stochastic Momentum Index of VROC (Volume Rate of Change)
4.Stochastic Momentum Index of Williams R% (Williams Percent Range)
5.Stochastic Momentum Index of FT (Fisher Transform)
6.Stochastic Momentum Index of CCI (Commodity Channel Index)
7.Stochastic Momentum Index of UO (Ultimate Oscillator)
8.Stochastic Momentum Index of MACD (Moving Average Convergence/Divergence)
9.Stochastic Momentum Index of Volume
10.Stochastic Momentum Index of MFI (Money Flow Index)
11.Stochastic Momentum Index of CMF (Chaikin Money Flow)
12.Stochastic Momentum Index of On Balance Volume (OBV)
13.Stochastic Momentum Index of Price-Volume Trend (PVT)
14.Stochastic Momentum Index of Volume Oscillator (VO)
15.Stochastic Momentum Index of Positive Volume Index (PVI)
16.Stochastic Momentum Index of Negative Volume Index (NVI)
## Relative Strength Index:
1. RSI for Volume
2. RSI for Moving Average
rsi(source, length)
RSI (Relative Strengh Index). Measures the relative strength of recent price gains to recent price losses of an asset.
Parameters:
source : (float) Source of series (close, high, low, etc.)
length : (int) Period of loopback
Returns: (float) Series of RSI
roc(source, length)
ROC (Rate of Change). Measures the percentage change in price of an asset over a specified time period.
Parameters:
source : (float) Source of series (close, high, low, etc.)
length : (int) Period of loopback
Returns: (float) Series of ROC
stoch(kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD)
Stochastic Oscillator. Compares the current price of an asset to its price range over a specified time period.
Parameters:
kLength
kSmoothing : (int) Period for smoothig stochastic
dSmoothing : (int) Period for signal (moving average of stochastic)
maTypeK : (int) Type of Moving Average for Stochastic Oscillator
maTypeD : (int) Type of Moving Average for Stochastic Oscillator Signal
almaOffsetKD : (float) Offset for Arnaud Legoux Moving Average for Oscillator and Signal
almaSigmaKD : (float) Sigma for Arnaud Legoux Moving Average for Oscillator and Signal
lsmaOffSetKD : (int) Offset for Least Squares Moving Average for Oscillator and Signal
Returns: A tuple of Stochastic Oscillator and Moving Average of Stochastic Oscillator
stoch(source, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD)
Stochastic Oscillator. Customized source. Compares the current price of an asset to its price range over a specified time period.
Parameters:
source : (float) Source of series (close, high, low, etc.)
kLength : (int) Period of loopback to calculate the stochastic
kSmoothing : (int) Period for smoothig stochastic
dSmoothing : (int) Period for signal (moving average of stochastic)
maTypeK : (int) Type of Moving Average for Stochastic Oscillator
maTypeD : (int) Type of Moving Average for Stochastic Oscillator Signal
almaOffsetKD : (float) Offset for Arnaud Legoux Moving Average for Stoch and Signal
almaSigmaKD : (float) Sigma for Arnaud Legoux Moving Average for Stoch and Signal
lsmaOffSetKD : (int) Offset for Least Squares Moving Average for Stoch and Signal
Returns: A tuple of Stochastic Oscillator and Moving Average of Stochastic Oscillator
tsi(source, shortLength, longLength, maType, almaOffset, almaSigma, lsmaOffSet)
TSI (True Strengh Index). Measures the price change, calculating the ratio of the price change (positive or negative) in relation to the absolute price change.
The values of both are smoothed twice to reduce noise, and the final result is normalized in a range between 100 and -100.
Parameters:
source : (float) Source of series (close, high, low, etc.)
shortLength : (int) Short length
longLength : (int) Long length
maType : (int) Type of Moving Average for TSI
almaOffset : (float) Offset for Arnaud Legoux Moving Average
almaSigma : (float) Sigma for Arnaud Legoux Moving Average
lsmaOffSet : (int) Offset for Least Squares Moving Average
Returns: (float) TSI
smi(sourceTSI, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal)
SMI (Stochastic Momentum Index). A TSI (True Strengh Index) plus a signal line.
Parameters:
sourceTSI : (float) Source of series for TSI (close, high, low, etc.)
shortLengthTSI : (int) Short length for TSI
longLengthTSI : (int) Long length for TSI
maTypeTSI : (int) Type of Moving Average for Signal of TSI
almaOffsetTSI : (float) Offset for Arnaud Legoux Moving Average
almaSigmaTSI : (float) Sigma for Arnaud Legoux Moving Average
lsmaOffSetTSI : (int) Offset for Least Squares Moving Average
maTypeSignal
smoothingLengthSignal
almaOffsetSignal
almaSigmaSignal
lsmaOffSetSignal
Returns: A tuple with TSI, signal of TSI and histogram of difference
wpr(source, length)
Williams R% (Williams Percent Range). Compares the current price of an asset to its highest high and lowest low over a specified time period.
Parameters:
source : (float) Source of series (close, high, low, etc.)
length : (int) Period of loopback
Returns: (float) Series of Williams R%
cci(source, length, maType, almaOffset, almaSigma, lsmaOffSet)
CCI (Commodity Channel Index). Measures the relationship between an asset's current price and its moving average.
Parameters:
source : (float) Source of series (close, high, low, etc.)
length : (int) Period of loopback
maType : (int) Type of Moving Average
almaOffset : (float) Offset for Arnaud Legoux Moving Average
almaSigma : (float) Sigma for Arnaud Legoux Moving Average
lsmaOffSet : (int) Offset for Least Squares Moving Average
Returns: (float) Series of CCI
ultimateOscillator(fastLength, middleLength, slowLength)
UO (Ultimate Oscilator). Combines three different time periods to help identify possible reversal points.
Parameters:
fastLength : (int) Fast period of loopback
middleLength : (int) Middle period of loopback
slowLength : (int) Slow period of loopback
Returns: (float) Series of Ultimate Oscilator
ultimateOscillator(source, fastLength, middleLength, slowLength)
UO (Ultimate Oscilator). Customized source. Combines three different time periods to help identify possible reversal points.
Parameters:
source : (float) Source of series (close, high, low, etc.)
fastLength : (int) Fast period of loopback
middleLength : (int) Middle period of loopback
slowLength : (int) Slow period of loopback
Returns: (float) Series of Ultimate Oscilator
macd(source, fastLength, slowLength, signalLength, maTypeFast, maTypeSlow, maTypeMACD, almaOffset, almaSigma, lsmaOffSet)
MACD (Moving Average Convergence/Divergence). Shows the difference between short-term and long-term exponential moving averages.
Parameters:
source : (float) Source of series (close, high, low, etc.)
fastLength : (int) Period for fast moving average
slowLength : (int) Period for slow moving average
signalLength : (int) Signal length
maTypeFast : (int) Type of fast moving average
maTypeSlow : (int) Type of slow moving average
maTypeMACD : (int) Type of MACD moving average
almaOffset : (float) Offset for Arnaud Legoux Moving Average
almaSigma : (float) Sigma for Arnaud Legoux Moving Average
lsmaOffSet : (int) Offset for Least Squares Moving Average
Returns: A tuple with MACD, Signal, and Histgram
fisher(length)
Fisher Transform. Normalize prices into a Gaussian normal distribution.
Parameters:
length
Returns: A tuple with Fisher Transform and signal
fisher(source, length)
Fisher Transform. Customized source. Normalize prices into a Gaussian normal distribution.
Parameters:
source : (float) Source of series (close, high, low, etc.)
length
Returns: A tuple with Fisher Transform and signal
inverseFisher(source, length, subtrahend, denominator)
Inverse Fisher Transform.
Transform the values of the Fisher Transform into a smaller and more easily interpretable scale is
through the application of an inverse transformation to the hyperbolic tangent function.
This transformation takes the values of the FT, which range from -infinity to +infinity,
to a scale limited between -1 and +1, allowing them to be more easily visualized and compared.
Parameters:
source : (float) Source of series (close, high, low, etc.)
length : (int) Period for loopback
subtrahend : (int) Denominator. Useful in unbounded indicators. For example, in CCI.
denominator
Returns: (float) Series of Inverse Fisher Transform
premierStoch(length, smoothlen)
Premier Stochastic Oscillator (PSO).
Normalizes the standard stochastic oscillator by applying a five-period double exponential smoothing
average of the %K value, resulting in a symmetric scale of 1 to -1.
Parameters:
length : (int) Period for loopback
smoothlen : (int) Period for smoothing
Returns: (float) Series of PSO
premierStoch(source, smoothlen, subtrahend, denominator)
Premier Stochastic Oscillator (PSO) of custom source.
Normalizes the source by applying a five-period double exponential smoothing average.
Parameters:
source : (float) Source of series (close, high, low, etc.)
smoothlen : (int) Period for smoothing
subtrahend : (int) Denominator. Useful in unbounded indicators. For example, in CCI.
denominator
Returns: (float) Series of PSO
stochRsi(sourceRSI, lengthRSI, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD)
Parameters:
sourceRSI
lengthRSI
kLength
kSmoothing
dSmoothing
maTypeK
maTypeD
almaOffsetKD
almaSigmaKD
lsmaOffSetKD
stochRoc(sourceROC, lengthROC, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD)
Parameters:
sourceROC
lengthROC
kLength
kSmoothing
dSmoothing
maTypeK
maTypeD
almaOffsetKD
almaSigmaKD
lsmaOffSetKD
stochUO(fastLength, middleLength, slowLength, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD)
Parameters:
fastLength
middleLength
slowLength
kLength
kSmoothing
dSmoothing
maTypeK
maTypeD
almaOffsetKD
almaSigmaKD
lsmaOffSetKD
stochTSI(source, shortLength, longLength, maType, almaOffset, almaSigma, lsmaOffSet, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD)
Parameters:
source
shortLength
longLength
maType
almaOffset
almaSigma
lsmaOffSet
kLength
kSmoothing
dSmoothing
maTypeK
maTypeD
almaOffsetKD
almaSigmaKD
lsmaOffSetKD
stochWPR(source, length, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD)
Parameters:
source
length
kLength
kSmoothing
dSmoothing
maTypeK
maTypeD
almaOffsetKD
almaSigmaKD
lsmaOffSetKD
stochCCI(source, length, maType, almaOffset, almaSigma, lsmaOffSet, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD)
Parameters:
source
length
maType
almaOffset
almaSigma
lsmaOffSet
kLength
kSmoothing
dSmoothing
maTypeK
maTypeD
almaOffsetKD
almaSigmaKD
lsmaOffSetKD
stochMACD(source, fastLength, slowLength, signalLength, maTypeFast, maTypeSlow, maTypeMACD, almaOffset, almaSigma, lsmaOffSet, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD)
Parameters:
source
fastLength
slowLength
signalLength
maTypeFast
maTypeSlow
maTypeMACD
almaOffset
almaSigma
lsmaOffSet
kLength
kSmoothing
dSmoothing
maTypeK
maTypeD
almaOffsetKD
almaSigmaKD
lsmaOffSetKD
stochFT(length, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD)
Parameters:
length
kLength
kSmoothing
dSmoothing
maTypeK
maTypeD
almaOffsetKD
almaSigmaKD
lsmaOffSetKD
stochVolume(kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD)
Parameters:
kLength
kSmoothing
dSmoothing
maTypeK
maTypeD
almaOffsetKD
almaSigmaKD
lsmaOffSetKD
stochMFI(source, length, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD)
Parameters:
source
length
kLength
kSmoothing
dSmoothing
maTypeK
maTypeD
almaOffsetKD
almaSigmaKD
lsmaOffSetKD
stochOBV(source, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD)
Parameters:
source
kLength
kSmoothing
dSmoothing
maTypeK
maTypeD
almaOffsetKD
almaSigmaKD
lsmaOffSetKD
stochPVI(source, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD)
Parameters:
source
kLength
kSmoothing
dSmoothing
maTypeK
maTypeD
almaOffsetKD
almaSigmaKD
lsmaOffSetKD
stochNVI(source, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD)
Parameters:
source
kLength
kSmoothing
dSmoothing
maTypeK
maTypeD
almaOffsetKD
almaSigmaKD
lsmaOffSetKD
stochPVT(source, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD)
Parameters:
source
kLength
kSmoothing
dSmoothing
maTypeK
maTypeD
almaOffsetKD
almaSigmaKD
lsmaOffSetKD
stochVO(shortLen, longLen, maType, almaOffset, almaSigma, lsmaOffSet, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD)
Parameters:
shortLen
longLen
maType
almaOffset
almaSigma
lsmaOffSet
kLength
kSmoothing
dSmoothing
maTypeK
maTypeD
almaOffsetKD
almaSigmaKD
lsmaOffSetKD
stochVROC(length, kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD)
Parameters:
length
kLength
kSmoothing
dSmoothing
maTypeK
maTypeD
almaOffsetKD
almaSigmaKD
lsmaOffSetKD
iftRSI(sourceRSI, lengthRSI, lengthIFT)
Parameters:
sourceRSI
lengthRSI
lengthIFT
iftROC(sourceROC, lengthROC, lengthIFT)
Parameters:
sourceROC
lengthROC
lengthIFT
iftUO(fastLength, middleLength, slowLength, lengthIFT)
Parameters:
fastLength
middleLength
slowLength
lengthIFT
iftStoch(kLength, kSmoothing, dSmoothing, maTypeK, maTypeD, almaOffsetKD, almaSigmaKD, lsmaOffSetKD, lengthIFT)
Parameters:
kLength
kSmoothing
dSmoothing
maTypeK
maTypeD
almaOffsetKD
almaSigmaKD
lsmaOffSetKD
lengthIFT
iftTSI(source, shortLength, longLength, maType, almaOffset, almaSigma, lsmaOffSet, lengthIFT)
Parameters:
source
shortLength
longLength
maType
almaOffset
almaSigma
lsmaOffSet
lengthIFT
iftCCI(source, length, maType, almaOffset, almaSigma, lsmaOffSet, lengthIFT)
Parameters:
source
length
maType
almaOffset
almaSigma
lsmaOffSet
lengthIFT
iftFisher(length, lengthIFT)
Parameters:
length
lengthIFT
iftMACD(source, fastLength, slowLength, signalLength, maTypeFast, maTypeSlow, maTypeMACD, almaOffset, almaSigma, lsmaOffSet, lengthIFT)
Parameters:
source
fastLength
slowLength
signalLength
maTypeFast
maTypeSlow
maTypeMACD
almaOffset
almaSigma
lsmaOffSet
lengthIFT
iftWPR(source, length, lengthIFT)
Parameters:
source
length
lengthIFT
iftMFI(source, length, lengthIFT)
Parameters:
source
length
lengthIFT
iftCMF(length, lengthIFT)
Parameters:
length
lengthIFT
iftVO(shortLen, longLen, maType, almaOffset, almaSigma, lsmaOffSet, lengthIFT)
Parameters:
shortLen
longLen
maType
almaOffset
almaSigma
lsmaOffSet
lengthIFT
iftVROC(length, lengthIFT)
Parameters:
length
lengthIFT
smiRSI(source, length, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal)
Parameters:
source
length
shortLengthTSI
longLengthTSI
maTypeTSI
almaOffsetTSI
almaSigmaTSI
lsmaOffSetTSI
maTypeSignal
smoothingLengthSignal
almaOffsetSignal
almaSigmaSignal
lsmaOffSetSignal
smiROC(source, length, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal)
Parameters:
source
length
shortLengthTSI
longLengthTSI
maTypeTSI
almaOffsetTSI
almaSigmaTSI
lsmaOffSetTSI
maTypeSignal
smoothingLengthSignal
almaOffsetSignal
almaSigmaSignal
lsmaOffSetSignal
smiVROC(length, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal)
Parameters:
length
shortLengthTSI
longLengthTSI
maTypeTSI
almaOffsetTSI
almaSigmaTSI
lsmaOffSetTSI
maTypeSignal
smoothingLengthSignal
almaOffsetSignal
almaSigmaSignal
lsmaOffSetSignal
smiWPR(source, length, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal)
Parameters:
source
length
shortLengthTSI
longLengthTSI
maTypeTSI
almaOffsetTSI
almaSigmaTSI
lsmaOffSetTSI
maTypeSignal
smoothingLengthSignal
almaOffsetSignal
almaSigmaSignal
lsmaOffSetSignal
smiFT(length, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal)
Parameters:
length
shortLengthTSI
longLengthTSI
maTypeTSI
almaOffsetTSI
almaSigmaTSI
lsmaOffSetTSI
maTypeSignal
smoothingLengthSignal
almaOffsetSignal
almaSigmaSignal
lsmaOffSetSignal
smiFT(source, length, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal)
Parameters:
source
length
shortLengthTSI
longLengthTSI
maTypeTSI
almaOffsetTSI
almaSigmaTSI
lsmaOffSetTSI
maTypeSignal
smoothingLengthSignal
almaOffsetSignal
almaSigmaSignal
lsmaOffSetSignal
smiCCI(source, length, maTypeCCI, almaOffsetCCI, almaSigmaCCI, lsmaOffSetCCI, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal)
Parameters:
source
length
maTypeCCI
almaOffsetCCI
almaSigmaCCI
lsmaOffSetCCI
shortLengthTSI
longLengthTSI
maTypeTSI
almaOffsetTSI
almaSigmaTSI
lsmaOffSetTSI
maTypeSignal
smoothingLengthSignal
almaOffsetSignal
almaSigmaSignal
lsmaOffSetSignal
smiUO(fastLength, middleLength, slowLength, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal)
Parameters:
fastLength
middleLength
slowLength
shortLengthTSI
longLengthTSI
maTypeTSI
almaOffsetTSI
almaSigmaTSI
lsmaOffSetTSI
maTypeSignal
smoothingLengthSignal
almaOffsetSignal
almaSigmaSignal
lsmaOffSetSignal
smiMACD(source, fastLength, slowLength, signalLength, maTypeFast, maTypeSlow, maTypeMACD, almaOffset, almaSigma, lsmaOffSet, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal)
Parameters:
source
fastLength
slowLength
signalLength
maTypeFast
maTypeSlow
maTypeMACD
almaOffset
almaSigma
lsmaOffSet
shortLengthTSI
longLengthTSI
maTypeTSI
almaOffsetTSI
almaSigmaTSI
lsmaOffSetTSI
maTypeSignal
smoothingLengthSignal
almaOffsetSignal
almaSigmaSignal
lsmaOffSetSignal
smiVol(shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal)
Parameters:
shortLengthTSI
longLengthTSI
maTypeTSI
almaOffsetTSI
almaSigmaTSI
lsmaOffSetTSI
maTypeSignal
smoothingLengthSignal
almaOffsetSignal
almaSigmaSignal
lsmaOffSetSignal
smiMFI(source, length, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal)
Parameters:
source
length
shortLengthTSI
longLengthTSI
maTypeTSI
almaOffsetTSI
almaSigmaTSI
lsmaOffSetTSI
maTypeSignal
smoothingLengthSignal
almaOffsetSignal
almaSigmaSignal
lsmaOffSetSignal
smiCMF(length, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal)
Parameters:
length
shortLengthTSI
longLengthTSI
maTypeTSI
almaOffsetTSI
almaSigmaTSI
lsmaOffSetTSI
maTypeSignal
smoothingLengthSignal
almaOffsetSignal
almaSigmaSignal
lsmaOffSetSignal
smiOBV(source, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal)
Parameters:
source
shortLengthTSI
longLengthTSI
maTypeTSI
almaOffsetTSI
almaSigmaTSI
lsmaOffSetTSI
maTypeSignal
smoothingLengthSignal
almaOffsetSignal
almaSigmaSignal
lsmaOffSetSignal
smiPVT(source, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal)
Parameters:
source
shortLengthTSI
longLengthTSI
maTypeTSI
almaOffsetTSI
almaSigmaTSI
lsmaOffSetTSI
maTypeSignal
smoothingLengthSignal
almaOffsetSignal
almaSigmaSignal
lsmaOffSetSignal
smiVO(shortLen, longLen, maType, almaOffset, almaSigma, lsmaOffSet, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal)
Parameters:
shortLen
longLen
maType
almaOffset
almaSigma
lsmaOffSet
shortLengthTSI
longLengthTSI
maTypeTSI
almaOffsetTSI
almaSigmaTSI
lsmaOffSetTSI
maTypeSignal
smoothingLengthSignal
almaOffsetSignal
almaSigmaSignal
lsmaOffSetSignal
smiPVI(source, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal)
Parameters:
source
shortLengthTSI
longLengthTSI
maTypeTSI
almaOffsetTSI
almaSigmaTSI
lsmaOffSetTSI
maTypeSignal
smoothingLengthSignal
almaOffsetSignal
almaSigmaSignal
lsmaOffSetSignal
smiNVI(source, shortLengthTSI, longLengthTSI, maTypeTSI, almaOffsetTSI, almaSigmaTSI, lsmaOffSetTSI, maTypeSignal, smoothingLengthSignal, almaOffsetSignal, almaSigmaSignal, lsmaOffSetSignal)
Parameters:
source
shortLengthTSI
longLengthTSI
maTypeTSI
almaOffsetTSI
almaSigmaTSI
lsmaOffSetTSI
maTypeSignal
smoothingLengthSignal
almaOffsetSignal
almaSigmaSignal
lsmaOffSetSignal
rsiVolume(length)
Parameters:
length
rsiMA(sourceMA, lengthMA, maType, almaOffset, almaSigma, lsmaOffSet, lengthRSI)
Parameters:
sourceMA
lengthMA
maType
almaOffset
almaSigma
lsmaOffSet
lengthRSI
Moving Average Compendium RefurbishedThis is my effort to bring together in a single script the widest range of moving averages possible.
I aggregated the calculation of averages within a library.
For more information about the library follow the link:
Basically this indicator is the visual result of this library.
You can choose the moving average and the script updates the chart as per the type.
The unique parameters of certain moving averages remain at their default values.
To have a rainbow of moving averages I also made an indicator:
Available moving averages:
AARMA = 'Adaptive Autonomous Recursive Moving Average'
ADEMA = '* Alpha-Decreasing Exponential Moving Average'
AHMA = 'Ahrens Moving Average'
ALMA = 'Arnaud Legoux Moving Average'
ALSMA = 'Adaptive Least Squares'
AUTOL = 'Auto-Line'
CMA = 'Corrective Moving average'
CORMA = 'Correlation Moving Average Price'
COVWEMA = 'Coefficient of Variation Weighted Exponential Moving Average'
COVWMA = 'Coefficient of Variation Weighted Moving Average'
DEMA = 'Double Exponential Moving Average'
DONCHIAN = 'Donchian Middle Channel'
EDMA = 'Exponentially Deviating Moving Average'
EDSMA = 'Ehlers Dynamic Smoothed Moving Average'
EFRAMA = '* Ehlrs Modified Fractal Adaptive Moving Average'
EHMA = 'Exponential Hull Moving Average'
EMA = 'Exponential Moving Average'
EPMA = 'End Point Moving Average'
ETMA = 'Exponential Triangular Moving Average'
EVWMA = 'Elastic Volume Weighted Moving Average'
FAMA = 'Following Adaptive Moving Average'
FIBOWMA = 'Fibonacci Weighted Moving Average'
FISHLSMA = 'Fisher Least Squares Moving Average'
FRAMA = 'Fractal Adaptive Moving Average'
GMA = 'Geometric Moving Average'
HKAMA = 'Hilbert based Kaufman\'s Adaptive Moving Average'
HMA = 'Hull Moving Average'
JURIK = 'Jurik Moving Average'
KAMA = 'Kaufman\'s Adaptive Moving Average'
LC_LSMA = '1LC-LSMA (1 line code lsma with 3 functions)'
LEOMA = 'Leo Moving Average'
LINWMA = 'Linear Weighted Moving Average'
LSMA = 'Least Squares Moving Average'
MAMA = 'MESA Adaptive Moving Average'
MCMA = 'McNicholl Moving Average'
MEDIAN = 'Median'
REGMA = 'Regularized Exponential Moving Average'
REMA = 'Range EMA'
REPMA = 'Repulsion Moving Average'
RMA = 'Relative Moving Average'
RSIMA = 'RSI Moving average'
RVWAP = '* Rolling VWAP'
SMA = 'Simple Moving Average'
SMMA = 'Smoothed Moving Average'
SRWMA = 'Square Root Weighted Moving Average'
SW_MA = 'Sine-Weighted Moving Average'
SWMA = '* Symmetrically Weighted Moving Average'
TEMA = 'Triple Exponential Moving Average'
THMA = 'Triple Hull Moving Average'
TREMA = 'Triangular Exponential Moving Average'
TRSMA = 'Triangular Simple Moving Average'
TT3 = 'Tillson T3'
VAMA = 'Volatility Adjusted Moving Average'
VIDYA = 'Variable Index Dynamic Average'
VWAP = '* VWAP'
VWMA = 'Volume-weighted Moving Average'
WMA = 'Weighted Moving Average'
WWMA = 'Welles Wilder Moving Average'
XEMA = 'Optimized Exponential Moving Average'
ZEMA = 'Zero-Lag Exponential Moving Average'
ZSMA = 'Zero-Lag Simple Moving Average'
Moving Average Heatmap Visualization7 different types of moving averages (5 different lengths of each) compared to a base moving average. Base moving average can be configured to be a slew of different types of moving averages (credit to @mortdiggiddy for the code) and have a custom length.
Red = base moving average is over other moving average (bearish)
Green = base moving average is under other moving average (bullish)
lengths for the different MAs are just fibonacci numbers due to lack of creativity.
First 5 moving averages are Simple moving average the next 5 are Exponential moving averages and after that it is weighted moving averages, volume weighted moving average (VWAP), Exponential volume weighted moving average (thanks again @mortdiggiddy ), hull moving averages and lastly zero lag moving averages.
The indicator might lag your chart out a bit so be ready for that.
Have fun!
Dskyz (DAFE) MAtrix with ATR-Powered Precision Dskyz (DAFE) MAtrix with ATR-Powered Precision
This cutting‐edge futures trading strategy built to thrive in rapidly changing market conditions. Developed for high-frequency futures trading on instruments such as the CME Mini MNQ, this strategy leverages a matrix of sophisticated moving averages combined with ATR-based filters to pinpoint high-probability entries and exits. Its unique combination of adaptable technical indicators and multi-timeframe trend filtering sets it apart from standard strategies, providing enhanced precision and dynamic responsiveness.
imgur.com
Core Functional Components
1. Advanced Moving Averages
A distinguishing feature of the DAFE strategy is its robust, multi-choice moving averages (MAs). Clients can choose from a wide array of MAs—each with specific strengths—in order to fine-tune their trading signals. The code includes user-defined functions for the following MAs:
imgur.com
Hull Moving Average (HMA):
The hma(src, len) function calculates the HMA by using weighted moving averages (WMAs) to reduce lag considerably while smoothing price data. This function computes an intermediate WMA of half the specified length, then a full-length WMA, and finally applies a further WMA over the square root of the length. This design allows for rapid adaptation to price changes without the typical delays of traditional moving averages.
Triple Exponential Moving Average (TEMA):
Implemented via tema(src, len), TEMA uses three consecutive exponential moving averages (EMAs) to effectively cancel out lag and capture price momentum. The final formula—3 * (ema1 - ema2) + ema3—produces a highly responsive indicator that filters out short-term noise.
Double Exponential Moving Average (DEMA):
Through the dema(src, len) function, DEMA calculates an EMA and then a second EMA on top of it. Its simplified formula of 2 * ema1 - ema2 provides a smoother curve than a single EMA while maintaining enhanced responsiveness.
Volume Weighted Moving Average (VWMA):
With vwma(src, len), this MA accounts for trading volume by weighting the price, thereby offering a more contextual picture of market activity. This is crucial when volume spikes indicate significant moves.
Zero Lag EMA (ZLEMA):
The zlema(src, len) function applies a correction to reduce the inherent lag found in EMAs. By subtracting a calculated lag (based on half the moving average window), ZLEMA is exceptionally attuned to recent price movements.
Arnaud Legoux Moving Average (ALMA):
The alma(src, len, offset, sigma) function introduces ALMA—a type of moving average designed to be less affected by outliers. With parameters for offset and sigma, it allows customization of the degree to which the MA reacts to market noise.
Kaufman Adaptive Moving Average (KAMA):
The custom kama(src, len) function is noteworthy for its adaptive nature. It computes an efficiency ratio by comparing price change against volatility, then dynamically adjusts its smoothing constant. This results in an MA that quickly responds during trending periods while remaining smoothed during consolidation.
Each of these functions—integrated into the strategy—is selectable by the trader (via the fastMAType and slowMAType inputs). This flexibility permits the tailored application of the MA most suited to current market dynamics and individual risk management preferences.
2. ATR-Based Filters and Risk Controls
ATR Calculation and Volatility Filter:
The strategy computes the Average True Range (ATR) over a user-defined period (atrPeriod). ATR is then used to derive both:
Volatility Assessment: Expressed as a ratio of ATR to closing price, ensuring that trades are taken only when volatility remains within a safe, predefined threshold (volatilityThreshold).
ATR-Based Entry Filters: Implemented as atrFilterLong and atrFilterShort, these conditions ensure that for long entries the price is sufficiently above the slow MA and vice versa for shorts. This acts as an additional confirmation filter.
Dynamic Exit Management:
The exit logic employs a dual approach:
Fixed Stop and Profit Target: Stops and targets are set at multiples of ATR (fixedStopMultiplier and profitTargetATRMult), helping manage risk in volatile markets.
Trailing Stop Adjustments: A trailing stop is calculated using the ATR multiplied by a user-defined offset (trailOffset), which captures additional profits as the trade moves favorably while protecting against reversals.
3. Multi-Timeframe Trend Filtering
The strategy enhances its signal reliability by leveraging a secondary, higher timeframe analysis:
15-Minute Trend Analysis:
By retrieving 15-minute moving averages (fastMA15m and slowMA15m) via request.security, the strategy determines the broader market trend. This secondary filter (enabled or disabled through useTrendFilter) ensures that entries are aligned with the prevailing market direction, thereby reducing the incidence of false signals.
4. Signal and Execution Logic
Combined MA Alignment:
The entry conditions are based primarily on the alignment of the fast and slow MAs. A long condition is triggered when the current price is above both MAs and the fast MA is above the slow MA—complemented by the ATR filter and volume conditions. The reverse applies for a short condition.
Volume and Time Window Validation:
Trades are permitted only if the current volume exceeds a minimum (minVolume) and the current hour falls within the predefined trading window (tradingStartHour to tradingEndHour). An additional volume spike check (comparing current volume to a moving average of past volumes) further filters for optimal market conditions.
Comprehensive Order Execution:
The strategy utilizes flexible order execution functions that allow pyramiding (up to 10 positions), ensuring that it can scale into positions as favorable conditions persist. The use of both market entries and automated exits (with profit targets, stop-losses, and trailing stops) ensures that risk is managed at every step.
5. Integrated Dashboard and Metrics
For transparency and real-time analysis, the strategy includes:
On-Chart Visualizations:
Both fast and slow MAs are plotted on the chart, making it easy to see the market’s technical foundation.
Dynamic Metrics Dashboard:
A built-in table displays crucial performance statistics—including current profit/loss, equity, ATR (both raw and as a percentage), and the percentage gap between the moving averages. These metrics offer immediate insight into the health and performance of the strategy.
Input Parameters: Detailed Breakdown
Every input is meticulously designed to offer granular control:
Fast & Slow Lengths:
Determine the window size for the fast and slow moving averages. Smaller values yield more sensitivity, while larger values provide a smoother, delayed response.
Fast/Slow MA Types:
Choose the type of moving average for fast and slow signals. The versatility—from basic SMA and EMA to more complex ones like HMA, TEMA, ZLEMA, ALMA, and KAMA—allows customization to fit different market scenarios.
ATR Parameters:
atrPeriod and atrMultiplier shape the volatility assessment, directly affecting entry filters and risk management through stop-loss and profit target levels.
Trend and Volume Filters:
Inputs such as useTrendFilter, minVolume, and the volume spike condition help confirm that a trade occurs in active, trending markets rather than during periods of low liquidity or market noise.
Trading Hours:
Restricting trade execution to specific hours (tradingStartHour and tradingEndHour) helps avoid illiquid or choppy markets outside of prime trading sessions.
Exit Strategies:
Parameters like trailOffset, profitTargetATRMult, and fixedStopMultiplier provide multiple layers of risk management and profit protection by tailoring how exits are generated relative to current market conditions.
Pyramiding and Fixed Trade Quantity:
The strategy supports multiple entries within a trend (up to 10 positions) and sets a predefined trade quantity (fixedQuantity) to maintain consistent exposure and risk per trade.
Dashboard Controls:
The resetDashboard input allows for on-the-fly resetting of performance metrics, keeping the strategy’s performance dashboard accurate and up-to-date.
Why This Strategy is Truly Exceptional
Multi-Faceted Adaptability:
The ability to switch seamlessly between various moving average types—each suited to particular market conditions—enables the strategy to adapt dynamically. This is a testament to the high level of coding sophistication and market insight infused within the system.
Robust Risk Management:
The integration of ATR-based stops, profit targets, and trailing stops ensures that every trade is executed with well-defined risk parameters. The system is designed to mitigate unexpected market swings while optimizing profit capture.
Comprehensive Market Filtering:
By combining moving average crossovers with volume analysis, volatility thresholds, and multi-timeframe trend filters, the strategy only enters trades under the most favorable conditions. This multi-layered filtering reduces noise and enhances signal quality.
-Final Thoughts-
The Dskyz Adaptive Futures Elite (DAFE) MAtrix with ATR-Powered Precision strategy is not just another trading algorithm—it is a multi-dimensional, fully customizable system built on advanced technical principles and sophisticated risk management techniques. Every function and input parameter has been carefully engineered to provide traders with a system that is both powerful and transparent.
For clients seeking a state-of-the-art trading solution that adapts dynamically to market conditions while maintaining strict discipline in risk management, this strategy truly stands in a class of its own.
****Please show support if you enjoyed this strategy. I'll have more coming out in the near future!!
-Dskyz
Caution
DAFE is experimental, not a profit guarantee. Futures trading risks significant losses due to leverage. Backtest, simulate, and monitor actively before live use. All trading decisions are your responsibility.
Adaptive DEMA Momentum Oscillator (ADMO)Overview:
The Adaptive DEMA Momentum Oscillator (ADMO) is an open-source technical analysis tool developed to measure market momentum using a Double Exponential Moving Average (DEMA) and adaptive standard deviation. By dynamically combining price deviation from the moving average with normalized standard deviation, ADMO provides traders with a powerful way to interpret market conditions.
Key Features:
Double Exponential Moving Average (DEMA):
The core calculation of the indicator is based on DEMA, which is known for being more responsive to price changes compared to traditional moving averages. This makes the ADMO capable of capturing trend momentum effectively.
Standard Deviation Integration:
A normalized standard deviation is used to adaptively weight the oscillator. This makes the indicator more sensitive to market volatility, enhancing responsiveness during high volatility and reducing sensitivity during calmer periods.
Oscillator Representation:
The final oscillator value is derived from the combination of the DEMA-based Z-score and the normalized standard deviation. This final value is visualized as a color-coded histogram, reflecting bullish or bearish momentum.
Color-Coded Histogram:
Bullish Momentum: Values above zero are colored using a customizable bullish color (default: light green).
Bearish Momentum: Values below zero are colored using a customizable bearish color (default: red).
How It Works:
Inputs:
DEMA Length: Defines the period used for calculating the Double Exponential Moving Average. It can be adjusted from 1 to 200 to suit different trading styles.
Standard Deviation Length: Sets the lookback period for standard deviation calculations, which influences the responsiveness of the oscillator.
Standard Deviation Weight (StdDev Weight): Controls the weight given to the normalized standard deviation, allowing customization of the oscillator's sensitivity to volatility.
Calculation Steps:
Double Exponential Moving Average Calculation:
The DEMA is calculated using two exponential moving averages, which helps in reducing lag compared to a simple moving average.
Z-score Calculation:
The Z-score is derived by comparing the difference between the DEMA and its smoothed average (LSMA) to the standard deviation. This indicates how far the current value is from the mean in units of standard deviation.
Normalized Standard Deviation:
The standard deviation is normalized by subtracting the mean standard deviation and dividing by the standard deviation of the values. This helps to make the oscillator adaptive to recent changes in volatility.
Final Oscillator Value:
The final value is calculated by multiplying the Z-score with a factor based on the normalized standard deviation, resulting in a momentum indicator that adapts to different market conditions.
Visualization:
Histogram: The oscillator is plotted as a histogram, with color-coded bars showing the strength and direction of market momentum.
Positive (bullish) values are shown in green, indicating upward momentum.
Negative (bearish) values are shown in red, indicating downward momentum.
Zero Line: A zero line is plotted to provide a reference point, helping users quickly determine whether the current momentum is bullish or bearish.
Example Use Cases:
Momentum Identification:
ADMO helps identify the current market momentum by dynamically adapting to changes in market volatility. When the histogram is above zero and green, it indicates bullish conditions, whereas values below zero and red suggest bearish momentum.
Volatility-Adjusted Signals:
The normalized standard deviation weighting allows the ADMO to provide more reliable signals during different market conditions. This makes it particularly useful for traders who want to be responsive to market volatility while avoiding false signals.
Trend Confirmation and Divergence:
ADMO can be used to confirm the strength of a trend or identify potential divergences between price and momentum. This helps traders spot potential reversal points or continuation signals.
Summary:
The Adaptive DEMA Momentum Oscillator (ADMO) offers a unique approach by combining momentum analysis with adaptive standard deviation. The integration of DEMA makes it responsive to price changes, while the standard deviation adjustment helps it stay relevant in both high and low volatility environments. It's a versatile tool for traders who need an adaptive, momentum-based approach to technical analysis.
Feel free to explore the code and adapt it to your trading strategy. The open-source nature of this tool allows you to adjust the settings and visualize the output to fit your personal trading preferences.
Goertzel Adaptive JMA T3Hello Fellas,
The Goertzel Adaptive JMA T3 is a powerful indicator that combines my own created Goertzel adaptive length with Jurik and T3 Moving Averages. The primary intention of the indicator is to demonstrate the new adaptive length algorithm by applying it on bleeding-edge MAs.
It is useable like any moving average, and the new Goertzel adaptive length algorithm can be used to make own indicators Goertzel adaptive.
Used Adaptive Length Algorithms
Normalized Goertzel Power: This uses the normalized power of the Goertzel algorithm to compute an adaptive length without the special operations, like detrending, Ehlers uses for his DFT adaptive length.
Ehlers Mod: This uses the Goertzel algorithm instead of the DFT, originally used by Ehlers, to compute a modified version of his original approach, which sticks as close as possible to the original approach.
Scoring System
The scoring system determines if bars are red or green and collects them.
Then, it goes through all collected red and green bars and checks how big they are and if they are above or below the selected MA. It is positive when green bars are under MA or when red bars are above MA.
Then, it accumulates the size for all positive green bars and for all positive red bars. The same happens for negative green and red bars.
Finally, it calculates the score by ((positiveGreenBars + positiveRedBars) / (negativeGreenBars + negativeRedBars)) * 100 with the scale 0–100.
Signals
Is the price above MA? -> bullish market
Is the price below MA? -> bearish market
Usage
Adjust the settings to reach the highest score, and enjoy an outstanding adaptive MA.
It should be useable on all timeframes. It is recommended to use the indicator on the timeframe where you can get the highest score.
Now, follows a bunch of knowledge for people who don't know about the concepts used here.
T3
The T3 moving average, short for "Tim Tillson's Triple Exponential Moving Average," is a technical indicator used in financial markets and technical analysis to smooth out price data over a specific period. It was developed by Tim Tillson, a software project manager at Hewlett-Packard, with expertise in Mathematics and Computer Science.
The T3 moving average is an enhancement of the traditional Exponential Moving Average (EMA) and aims to overcome some of its limitations. The primary goal of the T3 moving average is to provide a smoother representation of price trends while minimizing lag compared to other moving averages like Simple Moving Average (SMA), Weighted Moving Average (WMA), or EMA.
To compute the T3 moving average, it involves a triple smoothing process using exponential moving averages. Here's how it works:
Calculate the first exponential moving average (EMA1) of the price data over a specific period 'n.'
Calculate the second exponential moving average (EMA2) of EMA1 using the same period 'n.'
Calculate the third exponential moving average (EMA3) of EMA2 using the same period 'n.'
The formula for the T3 moving average is as follows:
T3 = 3 * (EMA1) - 3 * (EMA2) + (EMA3)
By applying this triple smoothing process, the T3 moving average is intended to offer reduced noise and improved responsiveness to price trends. It achieves this by incorporating multiple time frames of the exponential moving averages, resulting in a more accurate representation of the underlying price action.
JMA
The Jurik Moving Average (JMA) is a technical indicator used in trading to predict price direction. Developed by Mark Jurik, it’s a type of weighted moving average that gives more weight to recent market data rather than past historical data.
JMA is known for its superior noise elimination. It’s a causal, nonlinear, and adaptive filter, meaning it responds to changes in price action without introducing unnecessary lag. This makes JMA a world-class moving average that tracks and smooths price charts or any market-related time series with surprising agility.
In comparison to other moving averages, such as the Exponential Moving Average (EMA), JMA is known to track fast price movement more accurately. This allows traders to apply their strategies to a more accurate picture of price action.
Goertzel Algorithm
The Goertzel algorithm is a technique in digital signal processing (DSP) for efficient evaluation of individual terms of the Discrete Fourier Transform (DFT). It's particularly useful when you need to compute a small number of selected frequency components. Unlike direct DFT calculations, the Goertzel algorithm applies a single real-valued coefficient at each iteration, using real-valued arithmetic for real-valued input sequences. This makes it more numerically efficient when computing a small number of selected frequency components¹.
Discrete Fourier Transform
The Discrete Fourier Transform (DFT) is a mathematical technique used in signal processing to convert a finite sequence of equally-spaced samples of a function into a same-length sequence of equally-spaced samples of the discrete-time Fourier transform (DTFT), which is a complex-valued function of frequency . The DFT provides a frequency domain representation of the original input sequence .
Usage of DFT/Goertzel In Adaptive Length Algorithms
Adaptive length algorithms are automated trading systems that can dynamically adjust their parameters in response to real-time market data. This adaptability enables them to optimize their trading strategies as market conditions fluctuate. Both the Goertzel algorithm and DFT can be used in these algorithms to analyze market data and detect cycles or patterns, which can then be used to adjust the parameters of the trading strategy.
The Goertzel algorithm is more efficient than the DFT when you need to compute a small number of selected frequency components. However, for covering a full spectrum, the Goertzel algorithm has a higher order of complexity than fast Fourier transform (FFT) algorithms.
I hope this can help you somehow.
Thanks for reading, and keep it up.
Best regards,
simwai
---
Credits to:
@ClassicScott
@yatrader2
@cheatcountry
@loxx
Moving Average Continuity [QuantVue]"Moving Average Continuity," is designed to compare the position of two Moving Averages (MAs) across multiple timeframes.
The user can select three timeframes and determine the length and type of both a fast and slow moving average.
The indicator will display a small table in a user selected location.
This table helps traders quickly determine if, for their selected timeframes, the faster moving average is trending above or below the slower moving average.
The “Moving Average Continuity” indicator can also send you three types of alerts;
1. All moving averages are aligned bullish
2. All moving averages are aligned bearish
3. Moving averages are mixed
Key Features:
1. Timeframes: The user can select up to three distinct timeframes to compare the moving averages.
2. Moving Average Inputs: For each MA, users can determine:
• Length of the MA
• Type of the MA - Options include EMA (Exponential Moving Average), SMA (Simple Moving Average), HMA (Hull Moving Average), WMA (Weighted Moving Average), and VWMA (Volume Weighted Moving Average).
3. Positioning: Users have the ability to adjust the table's positioning (top, middle, or bottom) and horizontal alignment (right, center, or left) on the chart overlay.
4. Runtime Error Prevention: The indicator will throw an error if the chart's timeframe exceeds the maximum selected timeframe, ensuring that comparisons are done correctly.
Give this indicator a BOOST and COMMENT your thoughts!
We hope you enjoy.
Cheers.
WaveTrend 3D█ OVERVIEW
WaveTrend 3D (WT3D) is a novel implementation of the famous WaveTrend (WT) indicator and has been completely redesigned from the ground up to address some of the inherent shortcomings associated with the traditional WT algorithm.
█ BACKGROUND
The WaveTrend (WT) indicator has become a widely popular tool for traders in recent years. WT was first ported to PineScript in 2014 by the user @LazyBear, and since then, it has ascended to become one of the Top 5 most popular scripts on TradingView.
The WT algorithm appears to have origins in a lesser-known proprietary algorithm called Trading Channel Index (TCI), created by AIQ Systems in 1986 as an integral part of their commercial software suite, TradingExpert Pro. The software’s reference manual states that “TCI identifies changes in price direction” and is “an adaptation of Donald R. Lambert’s Commodity Channel Index (CCI)”, which was introduced to the world six years earlier in 1980. Interestingly, a vestige of this early beginning can still be seen in the source code of LazyBear’s script, where the final EMA calculation is stored in an intermediate variable called “tci” in the code.
█ IMPLEMENTATION DETAILS
WaveTrend 3D is an alternative implementation of WaveTrend that directly addresses some of the known shortcomings of the indicator, including its unbounded extremes, susceptibility to whipsaw, and lack of insight into other timeframes.
In the canonical WT approach, an exponential moving average (EMA) for a given lookback window is used to assess the variability between price and two other EMAs relative to a second lookback window. Since the difference between the average price and its associated EMA is essentially unbounded, an arbitrary scaling factor of 0.015 is typically applied as a crude form of rescaling but still fails to capture 20-30% of values between the range of -100 to 100. Additionally, the trigger signal for the final EMA (i.e., TCI) crossover-based oscillator is a four-bar simple moving average (SMA), which further contributes to the net lag accumulated by the consecutive EMA calculations in the previous steps.
The core idea behind WT3D is to replace the EMA-based crossover system with modern Digital Signal Processing techniques. By assuming that price action adheres approximately to a Gaussian distribution, it is possible to sidestep the scaling nightmare associated with unbounded price differentials of the original WaveTrend method by focusing instead on the alteration of the underlying Probability Distribution Function (PDF) of the input series. Furthermore, using a signal processing filter such as a Butterworth Filter, we can eliminate the need for consecutive exponential moving averages along with the associated lag they bring.
Ideally, it is convenient to have the resulting probability distribution oscillate between the values of -1 and 1, with the zero line serving as a median. With this objective in mind, it is possible to borrow a common technique from the field of Machine Learning that uses a sigmoid-like activation function to transform our data set of interest. One such function is the hyperbolic tangent function (tanh), which is often used as an activation function in the hidden layers of neural networks due to its unique property of ensuring the values stay between -1 and 1. By taking the first-order derivative of our input series and normalizing it using the quadratic mean, the tanh function performs a high-quality redistribution of the input signal into the desired range of -1 to 1. Finally, using a dual-pole filter such as the Butterworth Filter popularized by John Ehlers, excessive market noise can be filtered out, leaving behind a crisp moving average with minimal lag.
Furthermore, WT3D expands upon the original functionality of WT by providing:
First-class support for multi-timeframe (MTF) analysis
Kernel-based regression for trend reversal confirmation
Various options for signal smoothing and transformation
A unique mode for visualizing an input series as a symmetrical, three-dimensional waveform useful for pattern identification and cycle-related analysis
█ SETTINGS
This is a summary of the settings used in the script listed in roughly the order in which they appear. By default, all default colors are from Google's TensorFlow framework and are considered to be colorblind safe.
Source: The input series. Usually, it is the close or average price, but it can be any series.
Use Mirror: Whether to display a mirror image of the source series; for visualizing the series as a 3D waveform similar to a soundwave.
Use EMA: Whether to use an exponential moving average of the input series.
EMA Length: The length of the exponential moving average.
Use COG: Whether to use the center of gravity of the input series.
COG Length: The length of the center of gravity.
Speed to Emphasize: The target speed to emphasize.
Width: The width of the emphasized line.
Display Kernel Moving Average: Whether to display the kernel moving average of the signal. Like PCA, an unsupervised Machine Learning technique whereby neighboring vectors are projected onto the Principal Component.
Display Kernel Signal: Whether to display the kernel estimator for the emphasized line. Like the Kernel MA, it can show underlying shifts in bias within a more significant trend by the colors reflected on the ribbon itself.
Show Oscillator Lines: Whether to show the oscillator lines.
Offset: The offset of the emphasized oscillator plots.
Fast Length: The length scale factor for the fast oscillator.
Fast Smoothing: The smoothing scale factor for the fast oscillator.
Normal Length: The length scale factor for the normal oscillator.
Normal Smoothing: The smoothing scale factor for the normal frequency.
Slow Length: The length scale factor for the slow oscillator.
Slow Smoothing: The smoothing scale factor for the slow frequency.
Divergence Threshold: The number of bars for the divergence to be considered significant.
Trigger Wave Percent Size: How big the current wave should be relative to the previous wave.
Background Area Transparency Factor: Transparency factor for the background area.
Foreground Area Transparency Factor: Transparency factor for the foreground area.
Background Line Transparency Factor: Transparency factor for the background line.
Foreground Line Transparency Factor: Transparency factor for the foreground line.
Custom Transparency: Transparency of the custom colors.
Total Gradient Steps: The maximum amount of steps supported for a gradient calculation is 256.
Fast Bullish Color: The color of the fast bullish line.
Normal Bullish Color: The color of the normal bullish line.
Slow Bullish Color: The color of the slow bullish line.
Fast Bearish Color: The color of the fast bearish line.
Normal Bearish Color: The color of the normal bearish line.
Slow Bearish Color: The color of the slow bearish line.
Bullish Divergence Signals: The color of the bullish divergence signals.
Bearish Divergence Signals: The color of the bearish divergence signals.
█ ACKNOWLEDGEMENTS
@LazyBear - For authoring the original WaveTrend port on TradingView
@PineCoders - For the beautiful color gradient framework used in this indicator
@veryfid - For the inspiration of using mirrored signals for cycle analysis and using multiple lookback windows as proxies for other timeframes
Bollinger Bands + Keltner Channel Refurbished█ Goals
This is an indicator that brings together Bollinger Bands and Keltner's Channels in one thing.
Both are very similar, so I decided to make a merge of the best features I found out there.
Here there is the possibility of choosing one of these two as needed.
In addition, I added the following resources:
1. Pre-Defined intermediate bands with Fibonacci values;
2. Detachment of the bands in which the price was present;
3. Choice of Moving Average:
"Simple", "Exponential", "Regularized Exponential", "Hull", "Arnaud Legoux", "Weighted Moving Average", "Least Squares Moving Average (Linear Regression)", "Volume Weighted Moving Average", "Smoothed Moving Average", "Median", "VWAP");
4. Statistics: bars count within the bands.
█ Concepts
Keltner Channels vs. Bollinger Bands
"These two indicators are quite similar.
Keltner Channels use ATR to calculate the upper and lower bands while Bollinger Bands use standard deviation instead.
The interpretation of the indicators is similar, although since the calculations are different the two indicators may provide slightly different information or trade signals."
(Investopedia)
Bollinger Bands (BB)
"Bollinger Bands (BB) are a widely popular technical analysis instrument created by John Bollinger in the early 1980’s.
Bollinger Bands consist of a band of three lines which are plotted in relation to security prices.
The line in the middle is usually a Simple Moving Average (SMA) set to a period of 20 days (the type of trend line and period can be changed by the trader; however a 20 day moving average is by far the most popular).
The SMA then serves as a base for the Upper and Lower Bands which are used as a way to measure volatility by observing the relationship between the Bands and price.
Typically the Upper and Lower Bands are set to two standard deviations away from the SMA (The Middle Line); however the number of standard deviations can also be adjusted by the trader."
(TradingView)
Keltner Channels (KC)
"The Keltner Channels (KC) indicator is a banded indicator similar to Bollinger Bands and Moving Average Envelopes.
They consist of an Upper Envelope above a Middle Line as well as a Lower Envelope below the Middle Line.
The Middle Line is a moving average of price over a user-defined time period.
Either a simple moving average or an exponential moving average are typically used. The Upper and Lower Envelopes (user defined) are set a range away from the Middle Line.
This can be a multiple of the daily high/low range, or more commonly a multiple of the Average True Range."
(TradingView)
█ Examples
Bollinger Bands with 200 REMA:
Keltner Channel with 200 REMA:
Bollinger Bands with 55 ALMA:
Keltner Channel with 55 ALMA:
Bollinger Bands with 55 Least Squares Moving Average:
█ Thanks
- TradingView (BB, KC, ATR, MA's)
- everget (Regularized Exponential Moving Average)
- TimeFliesBuy ("Triple Bollinger Bands")
- Rashad ("Fibonacci Bollinger Bands")
- Dicargo_Beam ("Is the Bollinger Bands assumption wrong?")
Trend Thrust Indicator - RafkaThis indicator defines the impact of volume on the volume-weighted moving average, emphasizing trends with greater volume.
What determines a security’s value? Price is the agreement to exchange despite the possible disagreement in value. Price is the conviction, emotion, and volition of investors. It is not a constant but is influenced by information, opinions, and emotions over time. Volume represents this degree of conviction and is the embodiment of information and opinions flowing through investor channels. It is the asymmetry between the volume being forced through supply (offers) and demand (bids) that facilitates price change. Quantifying the extent of asymmetry between price trends and the corresponding volume flows is a primary objective of volume analysis. Volume analysis research reveals that volume often leads price but may also be used to confirm the present price trend.
Trend thrust indicator
The trend thrust indicator (TTI), an enhanced version of the volume-weighted moving average convergence/divergence (VW-Macd) indicator, was introduced in Buff Pelz Dormeier's book 'Investing With Volume Analysis'. The TTI uses a volume multiplier in unique ways to exaggerate the impact of volume on volume-weighted moving averages. Like the VW-Macd, the TTI uses volume-weighted moving averages as opposed to exponential moving averages. Volume-weighted averages weigh closing prices proportionally to the volume traded during each time period, so the TTI gives greater emphasis to those price trends with greater volume and less emphasis to time periods with lighter volume. In the February 2001 issue of Stocks & Commodities, I showed that volume-weighted moving averages (Buff averages, or Vwmas) improve responsiveness while increasing reliability of simple moving averages.
Like the Macd and VW-Macd, the TTI calculates a spread by subtracting the short (fast) average from the long (slow) average. This spread combined with a volume multiplier creates the Buff spread
eha MA CrossIn the study of time series, and specifically technical analysis of the stock market, a moving-average cross occurs when, the traces of plotting of two moving averages each based on different degrees of smoothing cross each other. Although it does not predict future direction but at least shows trends.
This indicator uses two moving averages, a slower moving average and a faster-moving average. The faster moving average is a short term moving average. A short term moving average is faster because it only considers prices over a short period of time and is thus more reactive to daily price changes.
On the other hand, a long term moving average is deemed slower as it encapsulates prices over a longer period and is more passive. However, it tends to smooth out price noises which are often reflected in short term moving averages.
There are a bunch of parameters that you can set on this indicator based on your needs.
Moving Averages Algorithm
You can choose between three types provided of Algorithms
Simple Moving Average
Exponential Moving Average
Weighted Moving Average
I will update this study with more educational materials in the near future so be informed by following the study and let me know what you think about it.
Please hit the like button if this study is useful for you.
Trend Volume Accumulation R1 by JustUncleLThis simple indicator shows the Accumulated Volume within the current uptrend or downtrend. The uptrend/downtrend is detected by a change in direction of the candles which works very well with Heikin Ashi and Renko charts. Alternatively you can use a Moving average direction to indicate trend direction, which should work on any candle type.
You can select between 11 different types of moving average:
SMA = Simple Moving Average.
EMA = Exponential Moving Average.
WMA = Weighted Moving Average
VWMA = Volume Weighted Moving Average
SMMA = Smoothed Simple Moving Average.
DEMA = Double Exponential Moving Average
TEMA = Triple Exponential Moving Average.
HullMA = Hull Moving Average
SSMA = Ehlers Super Smoother Moving average
ZEMA = Near Zero Lag Exponential Moving Average.
TMA = Triangular (smoothed) Simple Moving Average.
Here is a sample chart using EMA length 6 for trend Direction:
GC Magic(EMA/RMA) V1This is the second script I am posting on TV . This is a Trend based indicator with the option of using it as Exponential Moving Averages or Rsi Moving Averages.The RMA's are giving better signal than the Exponential Moving Averages. The script has the option to select either of them. Works on all time frames. The default options are working good on all time frames.
With the help of Indicator Properties following Options can be changed
a. Type of moving averages for using Guppy method
b. Option to use higher time frame Signal moving average of your choice along with higher time frame
c. Enable or disable to show signal EMA/RMA on chart .
d. Enable or disable to show Guppy EMA/RMA on chart
Indicator Properties:
1. Select to use EMA , Uncheck to use RMA: --> Check to Select EMA based Guppy or Uncheck to use RMA based Guppy
2. Fast EMA/RMA For Cross --> Fast EMA/RMA cross Length
3. Slow EMA/RMA For Cross --> Slow EMA/RMA Length
4. Signal EMA/RMA --> Moving average to use for Signal filters. This moving average will be based on the timeframe u will be selecting below
5. Time interval for Signal EMA/RMA (W, D, ) --> Which time frame moving average you want for the above Signal EMA
6. Do you want to use Signal EMA/RMA for Signals? --> Do you want to use Signal EMA as filter or just the cross of Guppy . Check to use and uncheck for just cross
7. Show Signal EMA on Chart? --> Do you want to display higher timeframe Signal EMA on chart
8. Show Guppy-Slow-Red On Chart? --> Shows/Hides Slow EMA/RMAs
9. Show Guppy-Fast-Green On Chart? --> Shows/Hides Fast EMA/RMAs
Examples:
GbpAud 15m
GbpNzd 1hr
Oil 4hr
AudUSD 1hr
Combined EMA/Smiley & DEM System## 🔷 General Overview
This script creates an advanced technical analysis system for TradingView, combining multiple Exponential Moving Averages (EMAs), Simple Moving Averages (SMAs), dynamic Fibonacci levels, and ATR (Average True Range) analysis. It presents the results clearly through interactive, real-time tables directly on the chart.
---
## 🔹 Indicator Structure
The script consists of two main parts:
### **1. EMA & SMA Combined System with Fibonacci**
- **Purpose:**
Provides visual insights by comparing multiple EMA/SMA periods and identifying significant dynamic price levels using Fibonacci ratios around a calculated "Golden" line.
- **Components:**
- **Moving Averages (MAs)**:
- 20 EMAs (periods from 20 to 400)
- 20 SMAs (also from 20 to 400)
- **Golden Line:**
Calculated as the average of all EMAs and SMAs.
- **Dynamic Fibonacci Levels:**
Key ratios around the Golden line (0.5, 0.618, 0.786, 1.0, 1.272, 1.414, 1.618, 2.0) dynamically adjust based on market conditions.
- **Fibonacci Labels:**
Labels are shown next to Fibonacci lines, indicating their numeric value clearly on the chart.
- **Table (Top Right Corner):**
- Displays:
- **Input:** EMA/SMA periods sorted by their current average price levels.
- **AVG:** The average of corresponding EMA & SMA pairs.
- **EMA & SMA Values:** Individual EMA/SMA values clearly marked.
- **Dynamic Highlighting:** Highlights the row whose average (EMA+SMA)/2 is closest to the current price, helping identify immediate price action significance.
- **Sorting Logic:**
Each EMA/SMA pair is dynamically sorted based on their average values. Color coding (red/green) is used:
- **Green:** EMA/SMA pairs with shorter periods when their average is lower.
- **Red:** EMA/SMA pairs with longer periods when their average is lower.
- **Star (⭐):** Represents the "Golden" average clearly.
---
### **2. DEM System (Dynamic EMA/ATR Metrics)**
- **Purpose:**
Provides detailed ATR statistics to assess market volatility clearly and quickly.
- **Components:**
- **Moving Averages:**
- SMA lines: 25, 50, 100, 200.
- **Bollinger Bands:**
- Based on 20-period SMA of highs and standard deviation of lows.
- **ATR Analysis:**
- ATR calculations for multiple periods (1-day, 10, 20, 30, 40, 50).
- **ATR Premium:** Average ATR of all calculated periods, providing an overarching volatility indicator.
- **ATR Table (Bottom Right Corner):**
- Displays clearly structured ATR values and percentages relative to the current close price:
- Columns: **ATR Period**, **Value**, and **% of Close**.
- Rows: Each specific ATR (1D, 10, 20, 30, 40, 50), plus ATR premium.
- The ATR premium is highlighted in yellow to signify its importance clearly.
---
## 🔹 Key Features and Logic Explained
- **Dynamic EMA/SMA Sorting:**
The script computes the average of each EMA/SMA pair and sorts them dynamically on each bar, highlighting their relative importance visually. This allows traders to easily interpret the strength of current support/resistance levels based on moving averages.
- **Closest EMA/SMA Pair to Current Price:**
Calculates the absolute difference between the current price and all EMA/SMA averages, highlighting the closest one for quick reference.
- **Fibonacci Ratios:**
- Dynamically calculated Fibonacci levels based on the "Golden" EMA/SMA average give clear visual guidance for potential targets, supports, and resistances.
- Labels are continuously updated and placed next to levels for clarity.
- **ATR Volatility Analysis:**
- Provides immediate insight into market volatility with absolute and relative (percentage-based) ATR values.
- ATR premium summarizes volatility across multiple timeframes clearly.
---
## 🔹 Practical Use Case:
- Traders can quickly identify support/resistance and critical price zones through EMA/SMA and Fibonacci combinations.
- Useful in assessing immediate volatility, guiding stop-loss and take-profit levels through detailed ATR metrics.
- The dynamic highlighting in tables provides intuitive, real-time decision support for active traders.
---
## 🔹 How to Use this Script:
1. **Adjust EMA & SMA Lengths** from indicator settings if different periods are preferred.
2. **Monitor dynamic Fibonacci levels** around the "Golden" average to identify possible reversal or continuation points.
3. **Check EMA/SMA table:** Rows highlighted indicate immediate significance concerning current market price.
4. **ATR table:** Use volatility metrics for better risk management.
---
## 🔷 Conclusion
This advanced Pine Script indicator efficiently combines multiple EMAs, SMAs, dynamic Fibonacci retracement levels, and volatility analysis using ATR into a comprehensive real-time analytical tool, enhancing traders' decision-making capabilities by providing clear and actionable insights directly on the TradingView chart.
Green/Red Candle Probability (EMA 7, SMA 20, SMA 200)### Strategy Explanation for Candle Probability Indicator
This script is designed to calculate the **probability of bullish (green) and bearish (red) candles** over a given analysis period. It leverages three key moving averages to identify market trends and display these probabilities directly on the chart, making it easier for traders to make informed decisions.
#### **How the Script Works:**
1. **Trend Detection Using Moving Averages:**
- The script calculates three moving averages:
- **EMA (Exponential Moving Average) over 7 periods**
- **SMA (Simple Moving Average) over 20 periods**
- **SMA over 200 periods**
The trend is classified as:
- **Bullish:** When EMA 7 > SMA 20 > SMA 200
- **Bearish:** When EMA 7 < SMA 20 < SMA 200
2. **Candle Analysis:**
The script analyzes the last "n" candles (based on the user-defined lookback period) to count the number of bullish and bearish candles:
- **Bullish (green) candle:** The closing price is higher than the opening price.
- **Bearish (red) candle:** The closing price is lower than the opening price.
3. **Probability Calculation:**
The probabilities are calculated as a percentage of bullish and bearish candles in the lookback period:
- **Green Probability (%) = (Number of Green Candles / Lookback Period) × 100**
- **Red Probability (%) = (Number of Red Candles / Lookback Period) × 100**
4. **Displaying Results in a Table:**
The results are displayed in a table on the chart, including:
- **Green Probability (%)**
- **Red Probability (%)**
- **Current Trend (Bullish, Bearish, or Neutral)**
#### **Strategy Overview:**
This indicator provides traders with a quick overview of the candle probabilities and the current market trend based on moving averages. It helps traders:
- Gauge the likelihood of bullish or bearish candles appearing in the near future.
- Identify the prevailing trend (bullish, bearish, or neutral).
- Adjust their trading strategies based on statistical probabilities rather than assumptions.
### **Important Notes:**
- The lookback period can be customized between **10 and 200 periods**.
- The indicator does not provide buy/sell signals but gives insights into market behavior.
By understanding the candle probabilities and the trend, traders can better assess market conditions and improve their decision-making process.
Super CCI By Baljit AujlaThe indicator you've shared is a custom CCI (Commodity Channel Index) with multiple types of Moving Averages (MA) and Divergence Detection. It is designed to help traders identify trends and reversals by combining the CCI with various MAs and detecting different types of divergences between the price and the CCI.
Key Components of the Indicator:
CCI (Commodity Channel Index):
The CCI is an oscillator that measures the deviation of the price from its average price over a specific period. It helps identify overbought and oversold conditions and the strength of a trend.
The CCI is calculated by subtracting a moving average (SMA) from the price and dividing by the average deviation from the SMA. The CCI values fluctuate above and below a zero centerline.
Multiple Moving Averages (MA):
The indicator allows you to choose from a variety of moving averages to smooth the CCI line and identify trend direction or support/resistance levels. The available types of MAs include:
SMA (Simple Moving Average)
EMA (Exponential Moving Average)
WMA (Weighted Moving Average)
HMA (Hull Moving Average)
RMA (Running Moving Average)
SMMA (Smoothed Moving Average)
TEMA (Triple Exponential Moving Average)
DEMA (Double Exponential Moving Average)
VWMA (Volume-Weighted Moving Average)
ZLEMA (Zero-Lag Exponential Moving Average)
You can select the type of MA to use with a specified length to help identify the trend direction or smooth out the CCI.
Divergence Detection:
The indicator includes a divergence detection mechanism to identify potential trend reversals. Divergences occur when the price and an oscillator like the CCI move in opposite directions, signaling a potential change in price momentum.
Four types of divergences are detected:
Bullish Divergence: Occurs when the price makes a lower low, but the CCI makes a higher low. This indicates a potential reversal to the upside.
Bearish Divergence: Occurs when the price makes a higher high, but the CCI makes a lower high. This indicates a potential reversal to the downside.
Hidden Bullish Divergence: Occurs when the price makes a higher low, but the CCI makes a lower low. This suggests a continuation of the uptrend.
Hidden Bearish Divergence: Occurs when the price makes a lower high, but the CCI makes a higher high. This suggests a continuation of the downtrend.
Each type of divergence is marked on the chart with arrows and labels to alert traders to potential trading opportunities. The labels include the divergence type (e.g., "Bull Div" for Bullish Divergence) and have customizable text colors.
Visual Representation:
The CCI and its associated moving average are plotted on the indicator panel below the price chart. The CCI is plotted as a line, and its color changes depending on whether it is above or below the moving average:
Green when the CCI is above the MA (indicating bullish momentum).
Red when the CCI is below the MA (indicating bearish momentum).
Horizontal lines are drawn at specific levels to help identify key CCI thresholds:
200 and -200 levels indicate extreme overbought or oversold conditions.
75 and -75 levels represent less extreme levels of overbought or oversold conditions.
The 0 level acts as a neutral or baseline level.
A background color fill between the 75 and -75 levels helps highlight the neutral zone.
Customization Options:
CCI Length: You can customize the length of the CCI, which determines the period over which the CCI is calculated.
MA Length: The length of the moving average applied to the CCI can also be adjusted.
MA Type: Choose from a variety of moving averages (SMA, EMA, WMA, etc.) to smooth the CCI.
Divergence Detection: The indicator automatically detects the four types of divergences (bullish, bearish, hidden bullish, hidden bearish) and visually marks them on the chart.
How to Use the Indicator:
Trend Identification: When the CCI is above the selected moving average, it suggests bullish momentum. When the CCI is below the moving average, it suggests bearish momentum.
Overbought/Oversold Conditions: The CCI values above 100 or below -100 indicate overbought and oversold conditions, respectively.
Divergence Analysis: The detection of bullish or bearish divergences can signal potential trend reversals. Hidden divergences may suggest trend continuation.
Trading Signals: You can use the divergence markers (arrows and labels) as potential buy or sell signals, depending on whether the divergence is bullish or bearish.
Practical Application:
This indicator is useful for traders who want to:
Combine the CCI with different moving averages for trend-following strategies.
Identify overbought and oversold conditions using the CCI.
Use divergence detection to anticipate potential trend reversals or continuations.
Have a highly customizable tool for various trading strategies, including trend trading, reversal trading, and divergence-based trading.
Overall, this is a comprehensive tool that combines multiple technical analysis techniques (CCI, moving averages, and divergence) in a single indicator, providing traders with a robust way to analyze price action and spot potential trading opportunities.
Uptrick: RSI Histogram
1. **Introduction to the RSI and Moving Averages**
2. **Detailed Breakdown of the Uptrick: RSI Histogram**
3. **Calculation and Formula**
4. **Visual Representation**
5. **Customization and User Settings**
6. **Trading Strategies and Applications**
7. **Risk Management**
8. **Case Studies and Examples**
9. **Comparison with Other Indicators**
10. **Advanced Usage and Tips**
---
## 1. Introduction to the RSI and Moving Averages
### **1.1 Relative Strength Index (RSI)**
The Relative Strength Index (RSI) is a momentum oscillator developed by J. Welles Wilder and introduced in his 1978 book "New Concepts in Technical Trading Systems." It is widely used in technical analysis to measure the speed and change of price movements.
**Purpose of RSI:**
- **Identify Overbought/Oversold Conditions:** RSI values range from 0 to 100. Traditionally, values above 70 are considered overbought, while values below 30 are considered oversold. These thresholds help traders identify potential reversal points in the market.
- **Trend Strength Measurement:** RSI also indicates the strength of a trend. High RSI values suggest strong bullish momentum, while low values indicate bearish momentum.
**Calculation of RSI:**
1. **Calculate the Average Gain and Loss:** Over a specified period (e.g., 14 days), calculate the average gain and loss.
2. **Compute the Relative Strength (RS):** RS is the ratio of average gain to average loss.
3. **RSI Formula:** RSI = 100 - (100 / (1 + RS))
### **1.2 Moving Averages (MA)**
Moving Averages are used to smooth out price data and identify trends by filtering out short-term fluctuations. Two common types are:
**Simple Moving Average (SMA):** The average of prices over a specified number of periods.
**Exponential Moving Average (EMA):** A type of moving average that gives more weight to recent prices, making it more responsive to recent price changes.
**Smoothed Moving Average (SMA):** Used to reduce the impact of volatility and provide a clearer view of the underlying trend. The RMA, or Running Moving Average, used in the USH script is similar to an EMA but based on the average of RSI values.
## 2. Detailed Breakdown of the Uptrick: RSI Histogram
### **2.1 Indicator Overview**
The Uptrick: RSI Histogram (USH) is a technical analysis tool that combines the RSI with a moving average to create a histogram that reflects momentum and trend strength.
**Key Components:**
- **RSI Calculation:** Determines the relative strength of price movements.
- **Moving Average Application:** Smooths the RSI values to provide a clearer trend indication.
- **Histogram Plotting:** Visualizes the deviation of the smoothed RSI from a neutral level.
### **2.2 Indicator Purpose**
The primary purpose of the USH is to provide a clear visual representation of the market's momentum and trend strength. It helps traders identify:
- **Bullish and Bearish Trends:** By showing how far the smoothed RSI is from the neutral 50 level.
- **Potential Reversal Points:** By highlighting changes in momentum.
### **2.3 Indicator Design**
**RSI Moving Average (RSI MA):** The RSI MA is a smoothed version of the RSI, calculated using a running moving average. This smooths out short-term fluctuations and provides a clearer indication of the underlying trend.
**Histogram Calculation:**
- **Neutral Level:** The histogram is plotted relative to the neutral level of 50. This level represents a balanced market where neither bulls nor bears have dominance.
- **Histogram Values:** The histogram bars show the difference between the RSI MA and the neutral level. Positive values indicate bullish momentum, while negative values indicate bearish momentum.
## 3. Calculation and Formula
### **3.1 RSI Calculation**
The RSI calculation involves:
1. **Average Gain and Loss:** Calculated over the specified length (e.g., 14 periods).
2. **Relative Strength (RS):** RS = Average Gain / Average Loss.
3. **RSI Formula:** RSI = 100 - (100 / (1 + RS)).
### **3.2 Moving Average Calculation**
For the USH indicator, the RSI is smoothed using a running moving average (RMA). The RMA formula is similar to that of the EMA but is based on averaging RSI values over the specified length.
### **3.3 Histogram Calculation**
The histogram value is calculated as:
- **Histogram Value = RSI MA - 50**
**Plotting the Histogram:**
- **Positive Histogram Values:** Indicate that the RSI MA is above the neutral level, suggesting bullish momentum.
- **Negative Histogram Values:** Indicate that the RSI MA is below the neutral level, suggesting bearish momentum.
## 4. Visual Representation
### **4.1 Histogram Bars**
The histogram is plotted as bars on the chart:
- **Bullish Bars:** Colored green when the RSI MA is above 50.
- **Bearish Bars:** Colored red when the RSI MA is below 50.
### **4.2 Customization Options**
Traders can customize:
- **RSI Length:** Adjust the length of the RSI calculation to match their trading style.
- **Bull and Bear Colors:** Choose colors for histogram bars to enhance visual clarity.
### **4.3 Interpretation**
**Bullish Signal:** A histogram bar that moves from red to green indicates a potential shift to a bullish trend.
**Bearish Signal:** A histogram bar that moves from green to red indicates a potential shift to a bearish trend.
## 5. Customization and User Settings
### **5.1 Adjusting RSI Length**
The length parameter determines the number of periods over which the RSI is calculated and smoothed. Shorter lengths make the RSI more sensitive to price changes, while longer lengths provide a smoother view of trends.
### **5.2 Color Settings**
Traders can adjust:
- **Bull Color:** Color of histogram bars indicating bullish momentum.
- **Bear Color:** Color of histogram bars indicating bearish momentum.
**Customization Benefits:**
- **Visual Clarity:** Traders can choose colors that stand out against their chart’s background.
- **Personal Preference:** Adjust settings to match individual trading styles and preferences.
## 6. Trading Strategies and Applications
### **6.1 Trend Following**
**Identifying Entry Points:**
- **Bullish Entry:** When the histogram changes from red to green, it signals a potential entry point for long positions.
- **Bearish Entry:** When the histogram changes from green to red, it signals a potential entry point for short positions.
**Trend Confirmation:** The histogram helps confirm the strength of a trend. Strong, consistent green bars indicate robust bullish momentum, while strong, consistent red bars indicate robust bearish momentum.
### **6.2 Swing Trading**
**Momentum Analysis:**
- **Entry Signals:** Look for significant shifts in the histogram to time entries. A shift from bearish to bullish (red to green) indicates potential for upward movement.
- **Exit Signals:** A shift from bullish to bearish (green to red) suggests a potential weakening of the trend, signaling an exit or reversal point.
### **6.3 Range Trading**
**Market Conditions:**
- **Consolidation:** The histogram close to zero suggests a range-bound market. Traders can use this information to identify support and resistance levels.
- **Breakout Potential:** A significant move away from the neutral level may indicate a potential breakout from the range.
### **6.4 Risk Management**
**Stop-Loss Placement:**
- **Bullish Positions:** Place stop-loss orders below recent support levels when the histogram is green.
- **Bearish Positions:** Place stop-loss orders above recent resistance levels when the histogram is red.
**Position Sizing:** Adjust position sizes based on the strength of the histogram signals. Strong trends (indicated by larger histogram bars) may warrant larger positions, while weaker signals suggest smaller positions.
## 7. Risk Management
### **7.1 Importance of Risk Management**
Effective risk management is crucial for long-term trading success. It involves protecting capital, managing losses, and optimizing trade setups.
### **7.2 Using USH for Risk Management**
**Stop-Loss and Take-Profit Levels:**
- **Stop-Loss Orders:** Use the histogram to set stop-loss levels based on trend strength. For instance, place stops below support levels in bullish trends and above resistance levels in bearish trends.
- **Take-Profit Targets:** Adjust take-profit levels based on histogram changes. For example, lock in profits as the histogram starts to shift from green to red.
**Position Sizing:**
- **Trend Strength:** Scale position sizes based on the strength of histogram signals. Larger histogram bars indicate stronger trends, which may justify larger positions.
- **Volatility:** Consider market volatility and adjust position sizes to mitigate risk.
## 8. Case Studies and Examples
### **8.1 Example 1: Bullish Trend**
**Scenario:** A trader notices a transition from red to green histogram bars.
**Analysis:**
- **Entry Point:** The transition indicates a potential bullish trend. The trader decides to enter a long position.
- **Stop-Loss:** Set stop-loss below recent support levels.
- **Take-Profit:** Consider taking profits as the histogram moves back towards zero or turns red.
**Outcome:** The bullish trend continues, and the histogram remains green, providing a profitable trade setup.
### **8.2 Example 2: Bearish Trend**
**Scenario:** A trader observes a transition from green to red histogram bars.
**Analysis:**
- **Entry Point:** The transition suggests a potential
bearish trend. The trader decides to enter a short position.
- **Stop-Loss:** Set stop-loss above recent resistance levels.
- **Take-Profit:** Consider taking profits as the histogram approaches zero or shifts to green.
**Outcome:** The bearish trend continues, and the histogram remains red, resulting in a successful trade.
## 9. Comparison with Other Indicators
### **9.1 RSI vs. USH**
**RSI:** Measures momentum and identifies overbought/oversold conditions.
**USH:** Builds on RSI by incorporating a moving average and histogram to provide a clearer view of trend strength and momentum.
### **9.2 RSI vs. MACD**
**MACD (Moving Average Convergence Divergence):** A trend-following momentum indicator that uses moving averages to identify changes in trend direction.
**Comparison:**
- **USH:** Provides a smoothed RSI perspective and visual histogram for trend strength.
- **MACD:** Offers signals based on the convergence and divergence of moving averages.
### **9.3 RSI vs. Stochastic Oscillator**
**Stochastic Oscillator:** Measures the level of the closing price relative to the high-low range over a specified period.
**Comparison:**
- **USH:** Focuses on smoothed RSI values and histogram representation.
- **Stochastic Oscillator:** Provides overbought/oversold signals and potential reversals based on price levels.
## 10. Advanced Usage and Tips
### **10.1 Combining Indicators**
**Multi-Indicator Strategies:** Combine the USH with other technical indicators (e.g., Moving Averages, Bollinger Bands) for a comprehensive trading strategy.
**Confirmation Signals:** Use the USH to confirm signals from other indicators. For instance, a bullish histogram combined with a moving average crossover may provide a stronger buy signal.
### **10.2 Customization Tips**
**Adjust RSI Length:** Experiment with different RSI lengths to match various market conditions and trading styles.
**Color Preferences:** Choose histogram colors that enhance visibility and align with personal preferences.
### **10.3 Continuous Learning**
**Backtesting:** Regularly backtest the USH with historical data to refine strategies and improve accuracy.
**Education:** Stay updated with trading education and adapt strategies based on market changes and personal experiences.
Advanced Keltner Channel/Oscillator [MyTradingCoder]This indicator combines a traditional Keltner Channel overlay with an oscillator, providing a comprehensive view of price action, trend, and momentum. The core of this indicator is its advanced ATR calculation, which uses statistical methods to provide a more robust measure of volatility.
Starting with the overlay component, the center line is created using a biquad low-pass filter applied to the chosen price source. This provides a smoother representation of price than a simple moving average. The upper and lower channel lines are then calculated using the statistically derived ATR, with an additional set of mid-lines between the center and outer lines. This creates a more nuanced view of price action within the channel.
The color coding of the center line provides an immediate visual cue of the current price momentum. As the price moves up relative to the ATR, the line shifts towards the bullish color, and vice versa for downward moves. This color gradient allows for quick assessment of the current market sentiment.
The oscillator component transforms the channel into a different perspective. It takes the price's position within the channel and maps it to either a normalized -100 to +100 scale or displays it in price units, depending on your settings. This oscillator essentially shows where the current price is in relation to the channel boundaries.
The oscillator includes two key lines: the main oscillator line and a signal line. The main line represents the current position within the channel, smoothed by an exponential moving average (EMA). The signal line is a further smoothed version of the oscillator line. The interaction between these two lines can provide trading signals, similar to how MACD is often used.
When the oscillator line crosses above the signal line, it might indicate bullish momentum, especially if this occurs in the lower half of the oscillator range. Conversely, the oscillator line crossing below the signal line could signal bearish momentum, particularly if it happens in the upper half of the range.
The oscillator's position relative to its own range is also informative. Values near the top of the range (close to 100 if normalized) suggest that price is near the upper Keltner Channel band, indicating potential overbought conditions. Values near the bottom of the range (close to -100 if normalized) suggest proximity to the lower band, potentially indicating oversold conditions.
One of the strengths of this indicator is how the overlay and oscillator work together. For example, if the price is touching the upper band on the overlay, you'd see the oscillator at or near its maximum value. This confluence of signals can provide stronger evidence of overbought conditions. Similarly, the oscillator hitting extremes can draw your attention to price action at the channel boundaries on the overlay.
The mid-lines on both the overlay and oscillator provide additional nuance. On the overlay, price action between the mid-line and outer line might suggest strong but not extreme momentum. On the oscillator, this would correspond to readings in the outer quartiles of the range.
The customizable visual settings allow you to adjust the indicator to your preferences. The glow effects and color coding can make it easier to quickly interpret the current market conditions at a glance.
Overlay Component:
The overlay displays Keltner Channel bands dynamically adapting to market conditions, providing clear visual cues for potential trend reversals, breakouts, and overbought/oversold zones.
The center line is a biquad low-pass filter applied to the chosen price source.
Upper and lower channel lines are calculated using a statistically derived ATR.
Includes mid-lines between the center and outer channel lines.
Color-coded based on price movement relative to the ATR.
Oscillator Component:
The oscillator component complements the overlay, highlighting momentum and potential turning points.
Normalized values make it easy to compare across different assets and timeframes.
Signal line crossovers generate potential buy/sell signals.
Advanced ATR Calculation:
Uses a unique method to compute ATR, incorporating concepts like root mean square (RMS) and z-score clamping.
Provides both an average and mode-based ATR value.
Customizable Visual Settings:
Adjustable colors for bullish and bearish moves, oscillator lines, and channel components.
Options for line width, transparency, and glow effects.
Ability to display overlay, oscillator, or both simultaneously.
Flexible Parameters:
Customizable inputs for channel width multiplier, ATR period, smoothing factors, and oscillator settings.
Adjustable Q factor for the biquad filter.
Key Advantages:
Advanced ATR Calculation: Utilizes a statistical method to generate ATR, ensuring greater responsiveness and accuracy in volatile markets.
Overlay and Oscillator: Provides a comprehensive view of price action, combining trend and momentum analysis.
Customizable: Adjust settings to fine-tune the indicator to your specific needs and trading style.
Visually Appealing: Clear and concise design for easy interpretation.
The ATR (Average True Range) in this indicator is derived using a sophisticated statistical method that differs from the traditional ATR calculation. It begins by calculating the True Range (TR) as the difference between the high and low of each bar. Instead of a simple moving average, it computes the Root Mean Square (RMS) of the TR over the specified period, giving more weight to larger price movements. The indicator then calculates a Z-score by dividing the TR by the RMS, which standardizes the TR relative to recent volatility. This Z-score is clamped to a maximum value (10 in this case) to prevent extreme outliers from skewing the results, and then rounded to a specified number of decimal places (2 in this script).
These rounded Z-scores are collected in an array, keeping track of how many times each value occurs. From this array, two key values are derived: the mode, which is the most frequently occurring Z-score, and the average, which is the weighted average of all Z-scores. These values are then scaled back to price units by multiplying by the RMS.
Now, let's examine how these values are used in the indicator. For the Keltner Channel lines, the mid lines (top and bottom) use the mode of the ATR, representing the most common volatility state. The max lines (top and bottom) use the average of the ATR, incorporating all volatility states, including less common but larger moves. By using the mode for the mid lines and the average for the max lines, the indicator provides a nuanced view of volatility. The mid lines represent the "typical" market state, while the max lines account for less frequent but significant price movements.
For the color coding of the center line, the mode of the ATR is used to normalize the price movement. The script calculates the difference between the current price and the price 'degree' bars ago (default is 2), and then divides this difference by the mode of the ATR. The resulting value is passed through an arctangent function and scaled to a 0-1 range. This scaled value is used to create a color gradient between the bearish and bullish colors.
Using the mode of the ATR for this color coding ensures that the color changes are based on the most typical volatility state of the market. This means that the color will change more quickly in low volatility environments and more slowly in high volatility environments, providing a consistent visual representation of price momentum relative to current market conditions.
Using a good IIR (Infinite Impulse Response) low-pass filter, such as the biquad filter implemented in this indicator, offers significant advantages over simpler moving averages like the EMA (Exponential Moving Average) or other basic moving averages.
At its core, an EMA is indeed a simple, single-pole IIR filter, but it has limitations in terms of its frequency response and phase delay characteristics. The biquad filter, on the other hand, is a two-pole, two-zero filter that provides superior control over the frequency response curve. This allows for a much sharper cutoff between the passband and stopband, meaning it can more effectively separate the signal (in this case, the underlying price trend) from the noise (short-term price fluctuations).
The improved frequency response of a well-designed biquad filter means it can achieve a better balance between smoothness and responsiveness. While an EMA might need a longer period to sufficiently smooth out price noise, potentially leading to more lag, a biquad filter can achieve similar or better smoothing with less lag. This is crucial in financial markets where timely information is vital for making trading decisions.
Moreover, the biquad filter allows for independent control of the cutoff frequency and the Q factor. The Q factor, in particular, is a powerful parameter that affects the filter's resonance at the cutoff frequency. By adjusting the Q factor, users can fine-tune the filter's behavior to suit different market conditions or trading styles. This level of control is simply not available with basic moving averages.
Another advantage of the biquad filter is its superior phase response. In the context of financial data, this translates to more consistent lag across different frequency components of the price action. This can lead to more reliable signals, especially when it comes to identifying trend changes or price reversals.
The computational efficiency of biquad filters is also worth noting. Despite their more complex mathematical foundation, biquad filters can be implemented very efficiently, often requiring only a few operations per sample. This makes them suitable for real-time applications and high-frequency trading scenarios.
Furthermore, the use of a more sophisticated filter like the biquad can help in reducing false signals. The improved noise rejection capabilities mean that minor price fluctuations are less likely to cause unnecessary crossovers or indicator movements, potentially leading to fewer false breakouts or reversal signals.
In the specific context of a Keltner Channel, using a biquad filter for the center line can provide a more stable and reliable basis for the entire indicator. It can help in better defining the overall trend, which is crucial since the Keltner Channel is often used for trend-following strategies. The smoother, yet more responsive center line can lead to more accurate channel boundaries, potentially improving the reliability of overbought/oversold signals and breakout indications.
In conclusion, this advanced Keltner Channel indicator represents a significant evolution in technical analysis tools, combining the power of traditional Keltner Channels with modern statistical methods and signal processing techniques. By integrating a sophisticated ATR calculation, a biquad low-pass filter, and a complementary oscillator component, this indicator offers traders a comprehensive and nuanced view of market dynamics.
The indicator's strength lies in its ability to adapt to varying market conditions, providing clear visual cues for trend identification, momentum assessment, and potential reversal points. The use of statistically derived ATR values for channel construction and the implementation of a biquad filter for the center line result in a more responsive and accurate representation of price action compared to traditional methods.
Furthermore, the dual nature of this indicator – functioning as both an overlay and an oscillator – allows traders to simultaneously analyze price trends and momentum from different perspectives. This multifaceted approach can lead to more informed decision-making and potentially more reliable trading signals.
The high degree of customization available in the indicator's settings enables traders to fine-tune its performance to suit their specific trading styles and market preferences. From adjustable visual elements to flexible parameter inputs, users can optimize the indicator for various trading scenarios and time frames.
Ultimately, while no indicator can predict market movements with certainty, this advanced Keltner Channel provides traders with a powerful tool for market analysis. By offering a more sophisticated approach to measuring volatility, trend, and momentum, it equips traders with valuable insights to navigate the complex world of financial markets. As with any trading tool, it should be used in conjunction with other forms of analysis and within a well-defined risk management framework to maximize its potential benefits.
Moving Average Confluence [ST]Moving Average Confluence
Description in English:
This indicator uses multiple moving averages (SMA, EMA, WMA) with different periods to identify confluence points that can indicate support or resistance zones.
Detailed Explanation:
Configuration:
SMA Length: This input defines the period for the Simple Moving Average (SMA). The default value is 50.
EMA Length: This input defines the period for the Exponential Moving Average (EMA). The default value is 50.
WMA Length: This input defines the period for the Weighted Moving Average (WMA). The default value is 50.
Confluence Threshold: This input defines the maximum allowable difference between the moving averages to consider them in confluence. The default value is 0.01.
Calculation of Moving Averages:
SMA: Calculated as the simple arithmetic mean of the closing prices over the specified period.
EMA: Calculated by giving more weight to recent prices.
WMA: Calculated by weighting the closing prices based on their age.
Identification of Confluence:
Confluence is identified when the differences between SMA, EMA, and WMA are all within the specified threshold. This can indicate potential support or resistance zones.
Plotting:
The SMA, EMA, and WMA are plotted with different colors for easy identification.
Confluence points are marked with yellow labels on the chart.
Indicator Benefits:
Support and Resistance Identification: Helps traders identify potential support and resistance zones through the confluence of different moving averages.
Visual Cues: Provides clear visual signals for confluence points, aiding in making informed trading decisions.
Customizable Parameters: Allows traders to adjust the periods of the moving averages and the confluence threshold to suit different trading strategies and market conditions.
Justification of Component Combination:
Combining multiple types of moving averages (SMA, EMA, WMA) provides a comprehensive view of market trends. Identifying confluence points where these averages are close together can indicate strong support or resistance levels.
How Components Work Together:
The script calculates the SMA, EMA, and WMA for the specified periods.
It then checks if the differences between these moving averages are within the specified threshold.
When a confluence is detected, it is marked on the chart with a yellow label, providing a clear visual signal to the trader.
Título: Confluência de Médias Móveis
Descrição em Português:
Este indicador utiliza várias médias móveis (SMA, EMA, WMA) com diferentes períodos para identificar pontos de confluência que podem indicar zonas de suporte ou resistência.
Explicação Detalhada:
Configuração:
Comprimento da SMA: Este parâmetro define o período para a Média Móvel Simples (SMA). O valor padrão é 50.
Comprimento da EMA: Este parâmetro define o período para a Média Móvel Exponencial (EMA). O valor padrão é 50.
Comprimento da WMA: Este parâmetro define o período para a Média Móvel Ponderada (WMA). O valor padrão é 50.
Limite de Confluência: Este parâmetro define a diferença máxima permitida entre as médias móveis para considerá-las em confluência. O valor padrão é 0.01.
Cálculo das Médias Móveis:
SMA: Calculada como a média aritmética simples dos preços de fechamento ao longo do período especificado.
EMA: Calculada atribuindo mais peso aos preços mais recentes.
WMA: Calculada ponderando os preços de fechamento com base em sua idade.
Identificação de Confluência:
A confluência é identificada quando as diferenças entre SMA, EMA e WMA estão todas dentro do limite especificado. Isso pode indicar potenciais zonas de suporte ou resistência.
Plotagem:
A SMA, EMA e WMA são plotadas com cores diferentes para fácil identificação.
Pontos de confluência são marcados com etiquetas amarelas no gráfico.
Benefícios do Indicador:
Identificação de Suporte e Resistência: Ajuda os traders a identificar potenciais zonas de suporte e resistência através da confluência de diferentes médias móveis.
Sinais Visuais Claros: Fornece sinais visuais claros para pontos de confluência, auxiliando na tomada de decisões informadas.
Parâmetros Personalizáveis: Permite que os traders ajustem os períodos das médias móveis e o limite de confluência para se adequar a diferentes estratégias de negociação e condições de mercado.
Justificação da Combinação de Componentes:
Combinar vários tipos de médias móveis (SMA, EMA, WMA) fornece uma visão abrangente das tendências do mercado. Identificar pontos de confluência onde essas médias estão próximas pode indicar níveis fortes de suporte ou resistência.
Como os Componentes Funcionam Juntos:
O script calcula a SMA, EMA e WMA para os períodos especificados.
Em seguida, verifica se as diferenças entre essas médias móveis estão dentro do limite especificado.
Quando uma confluência é detectada, ela é marcada no gráfico com uma etiqueta amarela, fornecendo um sinal visual claro para o trader.
Optimal Length BackTester [YinYangAlgorithms]This Indicator allows for a ‘Optimal Length’ to be inputted within the Settings as a Source. Unlike most Indicators and/or Strategies that rely on either Static Lengths or Internal calculations for the length, this Indicator relies on the Length being derived from an external Indicator in the form of a Source Input.
This may not sound like much, but this application may allows limitless implementations of such an idea. By allowing the input of a Length within a Source Setting you may have an ‘Optimal Length’ that adjusts automatically without the need for manual intervention. This may allow for Traditional and Non-Traditional Indicators and/or Strategies to allow modifications within their settings as well to accommodate the idea of this ‘Optimal Length’ model to create an Indicator and/or Strategy that adjusts its length based on the top performing Length within the current Market Conditions.
This specific Indicator aims to allow backtesting with an ‘Optimal Length’ inputted as a ‘Source’ within the Settings.
This ‘Optimal Length’ may be used to display and potentially optimize multiple different Traditional Indicators within this BackTester. The following Traditional Indicators are included and available to be backtested with an ‘Optimal Length’ inputted as a Source in the Settings:
Moving Average; expressed as either a: Simple Moving Average, Exponential Moving Average or Volume Weighted Moving Average
Bollinger Bands; expressed based on the Moving Average Type
Donchian Channels; expressed based on the Moving Average Type
Envelopes; expressed based on the Moving Average Type
Envelopes Adjusted; expressed based on the Moving Average Type
All of these Traditional Indicators likewise may be displayed with multiple ‘Optimal Lengths’. They have the ability for multiple different ‘Optimal Lengths’ to be inputted and displayed, such as:
Fast Optimal Length
Slow Optimal Length
Neutral Optimal Length
By allowing for the input of multiple different ‘Optimal Lengths’ we may express the ‘Optimal Movement’ of such an expressed Indicator based on different Time Frames and potentially also movement based on Fast, Slow and Neutral (Inclusive) Lengths.
This in general is a simple Indicator that simply allows for the input of multiple different varieties of ‘Optimal Lengths’ to be displayed in different ways using Tradition Indicators. However, the idea and model of accepting a Length as a Source is unique and may be adopted in many different forms and endless ideas.
Tutorial:
You may add an ‘Optimal Length’ within the Settings as a ‘Source’ as followed in the example above. This Indicator allows for the input of a:
Neutral ‘Optimal Length’
Fast ‘Optimal Length’
Slow ‘Optimal Length’
It is important to account for all three as they generally encompass different min/max length values and therefore result in varying ‘Optimal Length’s’.
For instance, say you’re calculating the ‘Optimal Length’ and you use:
Min: 1
Max: 400
This would therefore be scanning for 400 (inclusive) lengths.
As a general way of calculating you may assume the following for which lengths are being used within an ‘Optimal Length’ calculation:
Fast: 1 - 199
Slow: 200 - 400
Neutral: 1 - 400
This allows for the calculation of a Fast and Slow length within the predetermined lengths allotted. However, it likewise allows for a Neutral length which is inclusive to all lengths alloted and may be deemed the ‘Most Accurate’ for these reasons. However, just because the Neutral is inclusive to all lengths, doesn’t mean the Fast and Slow lengths are irrelevant. The Fast and Slow length inputs may be useful for seeing how specifically zoned lengths may fair, and likewise when they cross over and/or under the Neutral ‘Optimal Length’.
This Indicator features the ability to display multiple different types of Traditional Indicators within the ‘Display Type’.
We will go over all of the different ‘Display Types’ with examples on how using a Fast, Slow and Neutral length would impact it:
Simple Moving Average:
In this example above have the Fast, Slow and Neutral Optimal Length formatted as a Slow Moving Average. The first example is on the 15 minute Time Frame and the second is on the 1 Day Time Frame, demonstrating how the length changes based on the Time Frame and the effects it may have.
Here we can see that by inputting ‘Optimal Lengths’ as a Simple Moving Average we may see moving averages that change over time with their ‘Optimal Lengths’. These lengths may help identify Support and/or Resistance locations. By using an 'Optimal Length' rather than a static length, we may create a Moving Average which may be more accurate as it attempts to be adaptive to current Market Conditions.
Bollinger Bands:
Bollinger Bands are a way to see a Simple Moving Average (SMA) that then uses Standard Deviation to identify how much deviation has occurred. This Deviation is then Added and Subtracted from the SMA to create the Bollinger Bands which help Identify possible movement zones that are ‘within range’. This may mean that the price may face Support / Resistance when it reaches the Outer / Inner bounds of the Bollinger Bands. Likewise, it may mean the Price is ‘Overbought’ when outside and above or ‘Underbought’ when outside and below the Bollinger Bands.
By applying All 3 different types of Optimal Lengths towards a Traditional Bollinger Band calculation we may hope to see different ranges of Bollinger Bands and how different lookback lengths may imply possible movement ranges on both a Short Term, Long Term and Neutral perspective. By seeing these possible ranges you may have the ability to identify more levels of Support and Resistance over different lengths and Trading Styles.
Donchian Channels:
Above you’ll see two examples of Machine Learning: Optimal Length applied to Donchian Channels. These are displayed with both the 15 Minute Time Frame and the 1 Day Time Frame.
Donchian Channels are a way of seeing potential Support and Resistance within a given lookback length. They are a way of withholding the High’s and Low’s of a specific lookback length and looking for deviation within this length. By applying a Fast, Slow and Neutral Machine Learning: Optimal Length to these Donchian Channels way may hope to achieve a viable range of High’s and Low’s that one may use to Identify Support and Resistance locations for different ranges of Optimal Lengths and likewise potentially different Trading Strategies.
Envelopes / Envelopes Adjusted:
Envelopes are an interesting one in the sense that they both may be perceived as useful; however we deem that with the use of an ‘Optimal Length’ that the ‘Envelopes Adjusted’ may work best. We will start with examples of the Traditional Envelope then showcase the Adjusted version.
Envelopes:
As you may see, a Traditional form of Envelopes even produced with a Machine Learning: Optimal Length may not produce optimal results. Unfortunately this may occur with some Traditional Indicators and they may need some adjustments as you’ll notice with the ‘Envelopes Adjusted’ version. However, even without the adjustments, these Envelopes may be useful for seeing ‘Overbought’ and ‘Oversold’ locations within a Machine Learning: Optimal Length standpoint.
Envelopes Adjusted:
By adding an adjustment to these Envelopes, we may hope to better reflect our Optimal Length within it. This is caused by adding a ratio reflection towards the current length of the Optimal Length and the max Length used. This allows for the Fast and Neutral (and potentially Slow if Neutral is greater) to achieve a potentially more accurate result.
Envelopes, much like Bollinger Bands are a way of seeing potential movement zones along with potential Support and Resistance. However, unlike Bollinger Bands which are based on Standard Deviation, Envelopes are based on percentages +/- from the Simple Moving Average.
We will conclude our Tutorial here. Hopefully this has given you some insight into how useful adding a ‘Optimal Length’ within an external (secondary) Indicator as a Source within the Settings may be. Likewise, how useful it may be for automation sake in the sense that when the ‘Optimal Length’ changes, it doesn’t rely on an alert where you need to manually update it yourself; instead it will update Automatically and you may reap the benefits of such with little manual input needed (aside from the initial setup).
If you have any questions, comments, ideas or concerns please don't hesitate to contact us.
HAPPY TRADING!